M
Original erstellt von nuclear:
stdio.h = stdin?! und was ist EOF und warum brauchts manchmal 2mal getchar()? und für was die klammern
japro hat ja schon einiges geklärt. Deshalb nur noch ergänzend:
1. EOF wird auch bei Fehlern geliefert. Was genau passiert ist, kann mit feof() & ferror() festgestellt werden.
2. getchar() liest das nächste Zeichen. Allerdings werden von einigen System (Windows) die Eingabezeichen nicht Zeichenweise, sondern Zeilenweise an Dein Programm übergeben. Also erst nachdem der Benutzer Return gedrückt hat. Das erste getchar() liest i.d.R ein im Eingabestrom (stdin) verbleibendes '\n', während das zweite getchar() meist dafür verwendet wird, auf ENTER zu warten.
Einige "Experten" werden Dir Lösungen wie fflush(stdin); präsentieren, was aber lt. Standard falsch (genauer: undefiniert) ist.
Wenn Du willst, erklär' ich Dir die Sache gerne nochmal mit Beispielcodes ....