Problem mit C schon beim Anfang



  • Ich schätz mal er gibt keinen fehler aus sonder nur ne warnung.
    Dann wär es mal gut wenn du die mitpostest.

    Aber sie wird wahrscheinlich nur bedeuten das du das int vor main vergessen ahst und keinen rückgabewert angegeben ahst
    so ists richtig

    /*bspl0001.c */
    #include <stdio.h>
    int main(){
        printf("\nDies ist ein erstes C-Programm.\n");
        printf("\nWie Sie sehen, kann 'printf' ");
        printf("nicht nur Text drucken,\n");
        printf("sondern auch rechnen.\n\n");
        printf("13 * 7 = %i \n",13 * 7);
        return 0;
    }
    

    Das die konsole gelich wieder schleißt ist normal, weil sich das programm beendet, Häng entweder dashier hinter das letzte printf "scanf("%c", &zeichen);"
    und "char zeichen;" vor das erste printf.
    Also so:

    /*bspl0001.c */
    #include <stdio.h>
    int main(){
        char zeichen;
        printf("\nDies ist ein erstes C-Programm.\n");
        printf("\nWie Sie sehen, kann 'printf' ");
        printf("nicht nur Text drucken,\n");
        printf("sondern auch rechnen.\n\n");
        printf("13 * 7 = %i \n",13 * 7);
        scanf("%c", &zeichen);
        return 0;
    }
    

    Oder du startest das gnaze programm direkt aus der console heraus.
    Also einfach dei eingabeaufforedrung starten und dann ins verzeichniss deiner exe wechseln und diese dann starten indem du ihren namen eingibst.

    //EDIT
    Das das erste Beispiel nicht klappt, ist eigentlich normal :-).
    Bei weiteren Fragen schau zuerst mal ins FAQ, da stehn so die
    StandartFragen und die antworten dazu.



  • Sorry, nochmal ich.

    Um die Konsole offen zu lassen, kannst Du am Ende ein

    scanf();
    

    schreiben,
    oder das Programm gleich in der Konsole starten 😉



  • @Storm
    Du warst zu langsam und doch zu schnell! 😃



  • Also erst mal danke für so viel Hilfe. Werd jetzt mal alles in Ruhe ausprobieren.
    @Helferlein: Mein Compiler ist Pelles C IDE.



  • @ Storm.Xapek.de
    Also ich bekomme angezeigt, das ein Fehler vorhanden ist; es wird aber nicht angezeigt, was der Fehler ist. 😕
    Und deshalb poste ich hier ja 😃



  • also ich hab die ganzen sachen von oben rein gemacht, raus kam das:

    Erzeugen von bspl0001.obj.
    Erzeugen von bspl0001.exe.
    POLINK: error: Unresolved external symbol '_WinMain'.
    POLINK: fatal error: 1 unresolved external(s).
    *** Fehlercode: 1 ***
    Fertig.

    Was soll ich damit anfangen? 😕 😕 😕



  • Was auch immer das für ne IDE ist..
    hast Du ein Windows PRojekt erstellt anstatt einer Konsolen Applikation?
    Und das: POLINK: error: Unresolved external symbol '_WinMain'
    ist doch eine Fehlermeldung oder? Was hat er denn vorher ausgespuckt?
    Gruss 💡



  • Erzeugen von bspl0001.obj.
    C:\...\Projekte\C\bspl0001.c(3): warning #2099: Missing type specifier.
    C:\...\Projekte\C\bspl0001.c(9): warning #2096: Missing return value.
    Fertig.

    Das kommt raus, wenn ich den Code komplimiere, wenn er so ist, wie er im Buch steht.
    Gruß



  • Das sind dochaber bloss Warnungen, dein PRogrammwird trotzdem ausgeführt.
    2. heisst, du sollst mit return 0; eben 0 als return value zurückgeben.
    1. weiss ich ned, gibt er keine Zeilennummer an? *nachschau* Ah doch (3).
    Das heisst er motzt, dass du nicht int main() schreibst, sondern nur main(), ohne Typenbezeichner.





  • ich werd doch wohl noch Fehlermeldungen interpetieren dürfen?

    int main{ return 0; }
    


  • das meinte ich nicht. ich meinte eher das scanf(), was ich persoenlich als fuer diesen zweck fehl am platz empfinde.



  • Versuchs einfach mal so...

    /*bspl0001.c */ 
    #include <stdio.h> 
    main()
    { 
    printf("\nDies ist ein erstes C-Programm.\n"); 
    printf("\nWie Sie sehen, kann 'printf' "); 
    printf("nicht nur Text drucken,\n"); 
    printf("sondern auch rechnen.\n\n"); 
    printf("13 * 7 = %i \n",13 * 7);
    getchar();
    return 0;
    }
    


  • sagte doch, dass er es (lieber) gleich in der konsole starten kann.
    dazu sind konsolen programme doch da, oder?
    also ausführen->command
    dann ins richtige dir hangeln mit cd irgendwas
    und exe ausführen.
    ist imho der einzig wahre weg, zurück zu konsolenprogrammen.
    ein "hit enter to exit" ist wirklich fehl am platz, da geb ich dir recht!



  • Also, das kompilieren geht jetzt problemlos (kein fehler wird mehr angezeigt 🙂 ). Nur wenn das Programm dann die .exe Datei erstellen soll, kommt das:

    Erzeugen von bspl0001.exe.
    POLINK: error: Unresolved external symbol '__penter'.
    POLINK: error: Unresolved external symbol '_printf'.
    POLINK: error: Unresolved external symbol '___filetab'.
    POLINK: error: Unresolved external symbol '_fgetc'.
    POLINK: error: Unresolved external symbol '__WinMainCRTStartup'.
    POLINK: fatal error: 5 unresolved external(s).
    *** Fehlercode: 1 ***
    Fertig.

    Also ich hab da jetzt den ganzen abend dran rumgebastelt, aber es will einfach nicht werden. Sorry, wenn ich hier euch zu maile, aber ich bin halt wirklich in Sachen C ein absoluter Noob. Danke mal trotzdem für die Hilfe bisher und hoffentlich noch weitere.



  • morzi schrieb:

    Also, das kompilieren geht jetzt problemlos (kein fehler wird mehr angezeigt 🙂 ). Nur wenn das Programm dann die .exe Datei erstellen soll, kommt das:

    Erzeugen von bspl0001.exe.
    POLINK: error: Unresolved external symbol '__penter'.
    POLINK: error: Unresolved external symbol '_printf'.
    POLINK: error: Unresolved external symbol '___filetab'.
    POLINK: error: Unresolved external symbol '_fgetc'.
    POLINK: error: Unresolved external symbol '__WinMainCRTStartup'.
    POLINK: fatal error: 5 unresolved external(s).
    *** Fehlercode: 1 ***
    Fertig.

    Also ich hab da jetzt den ganzen abend dran rumgebastelt, aber es will einfach nicht werden. Sorry, wenn ich hier euch zu maile, aber ich bin halt wirklich in Sachen C ein absoluter Noob. Danke mal trotzdem für die Hilfe bisher und hoffentlich noch weitere.

    mach es doch einfach so:

    /*bspl0001.c */
    #include <stdio.h>
    
    int main()
    {
    printf("\nDies ist ein erstes C-Programm.\n");
    printf("\nWie Sie sehen, kann 'printf' ");
    printf("nicht nur Text drucken,\n");
    printf("sondern auch rechnen.\n\n");
    printf("13 * 7 = %i \n",13 * 7);
    getchar();
    return 0;
    }
    

    😉



  • nimm eine andere IDE und einen anderen compiler. deine jetzigen sind nicht fuer anfaenge geeignet.

    saug dir mingw als compiler+zusatztools und code::blocks als IDE/editor.



  • /*bspl0001.c */ 
    #include <stdio.h> 
    main(){ 
    printf("\nDies ist ein erstes C-Programm.\n"); 
    printf("\nWie Sie sehen, kann 'printf' "); 
    printf("nicht nur Text drucken,\n"); 
    printf("sondern auch rechnen.\n\n"); 
    printf("13 * 7 = %i \n",13 * 7); 
    sleep(3000);
    }
    

    Dieser Code oben geht bei mir ohne Probleme.Habe das Buch auch wenn du allso wieder Probleme hast eine PN schicken.

    gruss Schlubl



  • 🙂 Kaum zu glauben aber wahr, es funktioniert jetzt! Danke mal an alle, und besonderen Dank an c.rackwitz, mit dem code::blocks funktioniert es jetzt.
    Gruß Morzi



  • Du hattest mit ziemlicher Wahrscheinlichkeit ein Windows Projekt verwendet.(wg. dem WinMain)
    Probiers nochmal mit dem alten Compiler und erstelle ein Konsolen Projekt!!! Dann sollte es auch damit funktionieren.

    Grüße,
    Harri


Anmelden zum Antworten