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 !