Funktion um Puffer zu leeren, Frage



  • Hallo,

    ich habe eine kleine Frage bezüglich folgender Funktion:

    int c; // int c, nicht char c.
    while ((c = getchar()) != EOF && c != '\n'); // kein {} block, stimmt s
    

    wieso wird c hier vom Typ int definiert, aber ihm dann characters zugewiesen? Wieso darf ich c nicht als char definieren?

    Vielen Dank schonmal!

    Grüße



  • Weil EOF vom Typ Int ist. getchar() liefert als Rückgabe auch Int. Wenn es nichts mehr findet, kriegst du EOF, was oft durch -1 dargestellt wird.



  • Sogar das '\n' ist Typ int 😉



  • Der Ablauf schaut doch wie folgt aus:

    ich lese mit getchar einen char aus dem puffer ein, weise ihn c zu und prüfe dann ob ich einen EOF bzw. ob c ein \n zugewiesen wurde...wenn ich einen Buchstaben wie A als Beispiel im Puffer stehen habe, wird c 65 zugewiesen, meine beiden anderen Bedinungen sind noch wahr und ich lese fröhlich weiter ein...

    vielen Dank, ich habs verstanden ! 🙂


Log in to reply