turgar: c-Programm & getchar()

Beitrag lesen

Bei mir sieht das nach wie vor anders aus...

Ich habe jetzt mal folgendes zum Debuggen mit dazu genommen:
printf("readChar = %c\n", readChar);
        printf("Insert position:\n");
        readChar = getchar();
        pos = ((int)readChar) - 48;

Die erste printf-Zeile zeigt mir immer das gegenwärtige Zeichen in readChar an.

Bei einer Eingabe von 123\n erhalte ich dabei:
Insert position:
123
        [...]
readChar = 1
Insert position:
       [...]
readChar = 2
Insert position:
       [...]
readChar = 3
Insert position:
wrong input!
pos was -38
readChar =

Deshalb verstehe ich das Ganze so, als würde bei jedem Programmdurchlauf lediglich ein Zeichen aus dem Puffer konsumiert werden.
Siehe beispielsweise den letzten Durchgang der die Eingabe von return konsumiert.
Bevor nicht alle Zeichen verbraucht sind werde ich nicht nach einer weiteren Eingabe gefragt und bin blos noch Zuschauer...

Dazu noch eine weitere Frage:
Welchen compiler nutzt du?
Ich habe hier den gcc unter Debian.