DEV c++, nimmt nicht alle C++ Syntaxe an.... ;(



  • ist das dein ganzes programm? weil sowas läuft auf keinem compiler... irgenwo muss da einfach eine main funktion sein.



  • Versuch mal:

    #include <iostream> 
    using namespace std; 
    
    void outName (char *pName);
    
    int main ()
    {
      outName ("name");
      return 0;
    }
    
    void outName(char *pName)   
    {   
        cout << "Mein Name ist "   
                   << pName   
                   << "\n";  
    }
    


  • Japro hat ganz recht: der Linker-Fehler zeigt, dass die main-Funktion fehlt! Wenn Du am Anfang nicht ausdrücklich von einem "Codeauszug" gesprochen hättest, wären wir da auch schon früher drauf gekommen...
    Also wenn Dein Buch Dir den Code wirklich so liefert, ohne dass vorher mal irgendwie eine main-Funktion erwähnt wurde, dann ist es Müll und Du kaufst Dir besser ein gescheiteres Buch!! Oder hast Du vielleicht nicht alles gelesen???
    Bevor Du auf den Compiler schimpst solltest Du Dir besser wirklich sicher sein, dass es nicht an Dir liegt!



  • Danke Leute, das Buch ist klasse, aber die haben bestimmt nur auf die Variante hingewiesen wie das geschrieben wird..



  • Wo wir gerade beim Thema sind, Dev c++ 4 kennt kein

    cout << showpos << 3 << endl;
    

    nur

    cout.setf(ios::showpos);
    cout << 3 << endl;
    

    Aber so alt ist der Compiler doch nicht, weshalb ich mir nich vorstellen kann dass das nicht funktioniert, ist das vielleicht nur irgendwo ausgestellt oder ist der Compiler wirklich so "veraltet"?



  • Andreas2 schrieb:

    Japro hat ganz recht: der Linker-Fehler zeigt, dass die main-Funktion fehlt! Wenn Du am Anfang nicht ausdrücklich von einem "Codeauszug" gesprochen hättest, wären wir da auch schon früher drauf gekommen...
    Also wenn Dein Buch Dir den Code wirklich so liefert, ohne dass vorher mal irgendwie eine main-Funktion erwähnt wurde, dann ist es Müll und Du kaufst Dir besser ein gescheiteres Buch!! Oder hast Du vielleicht nicht alles gelesen???
    Bevor Du auf den Compiler schimpst solltest Du Dir besser wirklich sicher sein, dass es nicht an Dir liegt!

    Ist bei vielen Beispielen doch so, dass nur die Header und eben eine Funktion
    als kleines Code-Snippet aufgeführt werden.
    Da dies ja sonst ziemlich viel Platz in Anspruch nehmen würde, da immer ein
    vollständiges Beispiel hinzuschreiben.



  • Falky schrieb:

    Wo wir gerade beim Thema sind, Dev c++ 4 kennt kein

    cout << showpos << 3 << endl;
    

    nur

    cout.setf(ios::showpos);
    cout << 3 << endl;
    

    Aber so alt ist der Compiler doch nicht, weshalb ich mir nich vorstellen kann dass das nicht funktioniert, ist das vielleicht nur irgendwo ausgestellt oder ist der Compiler wirklich so "veraltet"?

    nimmst du auch

    #include <iostream> 
    using namespace std;
    

    ?
    ansonsten: ich kenne den dev zwar nicht, aber kann man den compiler nicht aktualisieren?
    und übrigens: das studio 6 hat auch ne menge ungereimtheiten und bugs... die ide leute kommen oft nicht hinterher... thats life 😉



  • Ja, namespace ist am Start 🙂
    Was Updates betrifft...es gibt ne Beta von Dev C++ 5, aber die ist dermaßen buggy das man damit nix anfangen kann 😞



  • Eins was komisch ist, das er das Schlüsselwort "Void" nicht als Typ erkennt, sondern immer nur als "int", haben möchte..

    #include <stdio.h>
    
    // Sowas steht doch in jeden C Buch!
    
    void main() 
    {
    char name[20];
    printf("Wie ist dein Name, Herr?");
    scanf("%s", &name);
    printf("Hallo %s, wir begrueßen dich!");
    }
    

    Aber wenn ich int hinschreibe klappt das auf einmal!



  • das liegt daran, dass "void main" falsch ist. Du solltest "int main" schreiben.

    vielleicht solltest du dir nen anderes Buch/Tutorial suchen 🙄



  • In "Jetzt lerne ich C" steht auch void main, sogar noch mit der Begründung, dass
    man das int main nur bräuchte wenn das programm einen Rückgabewert braucht, weil
    es von einem anderen aufgerufen wird.
    War daher auch erstaunt weshalb das Buch unter den Buchempfehlungen ist und nicht
    ein Wort über die falsche Syntax steht.



  • Mhh, warum erkennt er der Compiler es nicht an..

    Bestimmt weil wieder in c++ wieder abgeschaft wurde, ich lese gerade 2/7 vom Buch das sind 60 - 70 Seiten von 500 - 1000 Seiten..

    Ich habe ja noch ein C++ Buch (c++ für Dummies), gucken was die da so sagen.., bestimmt finde ich da die Lösung..



  • In C ist es verboten void main zu schreiben, es steht nirgends im Standard.
    die richtige Schreibweise für C ist:
    int main (void)

    Es gibt viele Bücher/Tutorials die nicht Standardkonform sind.
    Viele Compiler halten sich ebenfalls nicht strikt an den Standard und lassen
    solche Konstrukte wie void main durchgehen.



  • Die Autoren haben ja "Microsoft Visual c++" u. denn "Borland C++ Compiler" benutzt...

    Die Dummies Reihe ist ja bekannt das Sie keine Fehler reinschreiben..



  • Spielgrips schrieb:

    Eins was komisch ist, das er das Schlüsselwort "Void" nicht als Typ erkennt, sondern immer nur als "int", haben möchte..

    #include <stdio.h>
    
    // Sowas steht doch in jeden C Buch!
    
    void main() 
    {
    char name[20];
    printf("Wie ist dein Name, Herr?");
    scanf("%s", &name);
    printf("Hallo %s, wir begrueßen dich!");
    }
    

    Aber wenn ich int hinschreibe klappt das auf einmal!

    printf("Hallo %s, wir begrueßen dich!"); 😕

    Fehlt da nicht was?! 🤡



  • Ja, das ,name , aber das geht auch so..



  • Spielgrips schrieb:

    Ja, das ,name , aber das geht auch so..

    Da sollte normalerweise der Compiler lautstark meckern....

    warning: the format string requires additional arguments

    ..oder so ähnlich!



  • Ich danke euch allen, ich kann jetzt wenigsten meine Codes schreiben ;)!

    My one Programm,

    #include <stdio.h>
    #include <stdlib.h>
    
    int main(void) 
    {
    
    int diff;
    int methus;
    int sie;
    int pr; 
    int okla;
    char jahre[30];
    
    printf("Wie alt sind Sie?\n");
    gets(jahre);
    sie = atoi(jahre);
    
    methus = 969; // Der Wert von Methusa!
    
    diff = methus - sie;
    printf("Sie sind %i Jahre juenger als Methusalem.\n\n", diff);
    
    printf("Wollen Sie das auch noch in Prozent wissen?");
    
    pr = methus / sie * 10;
    
    okla = pr / 10;
    
    printf("\n------------------------------------\n");
    printf("1Year = 10%%\n");
    
    printf("Sie sind %i%% juenger!\n\n\n", okla);
    
    printf("------------------------------------\n");
    getchar();
    
    }
    


  • SirLant schrieb:

    In "Jetzt lerne ich C" steht auch void main, sogar noch mit der Begründung, dass
    man das int main nur bräuchte wenn das programm einen Rückgabewert braucht, weil
    es von einem anderen aufgerufen wird.
    War daher auch erstaunt weshalb das Buch unter den Buchempfehlungen ist und nicht
    ein Wort über die falsche Syntax steht.

    das ist die falsche Annahme, die sich leider immer noch verbreitet. void main war noch nie von keiner Sprache definition erlaubt fuer C oder C++!

    Btw. solltest du deine C Programme nicht mit einem C++ Compiler kompilieren! (der gcc erkennt eigentlich die Programme an der Endung, also fuer C Programme .c nehmen, nicht .cpp das ist fuer C++)



  • #include <stdio.h>
    #define TEMPOLIMIT 100;

    int main(void)
    {

    printf("Die Geschwindigkeitsbegrenzung betraegt hier %i km/h. \n", TEMPOLIMIT);

    TEMPOLIMIT = 70;

    printf("Gemesen haben ich leider %i km/h. \n", TEMPOLIMIT + 25);
    printf("Haben Sie das Schild mit der %i nicht gesehen?\n", TEMPOLIMIT);

    }

    Das klappt nicht 😞 , er hat immer was mit:

    C:\WINDOWS\Desktop\c\rente.c [Warning] In function `main':
    7 C:\WINDOWS\Desktop\c\rente.c parse error before ';' token
    9 C:\WINDOWS\Desktop\c\rente.c parse error before '=' token
    11 C:\WINDOWS\Desktop\c\rente.c parse error before ';' token
    12 C:\WINDOWS\Desktop\c\rente.c parse error before ';' token


Anmelden zum Antworten