scanf blockiert nicht
-
hallo,
folgendes problem;
char key; scanf("%c", &key);
es blockiert nicht, also ich kann nichts eingeben
char key; scanf("%c", &key); scanf("%c", &key);
das blockiert dann...
weis einer wieso das so ist?blubb
-
evtl. ist noch/schon was in deinem input stream. flush den vorhermal und probiers nochmal.
-
schon versucht
hab fflush(stdin); und sogar fflush(stdout); /*was damit zwar nix zu tun hat aber habs mal mit rein...*/
bin am verzweifeln
blubb
-
fflush(stdin) ist allerdings auch nicht definiert. Versuch mal das hier: http://www.c-plusplus.net/forum/viewtopic.php?t=39328. (C-Version, der Teil mit setvbuf() zum verändern der Größe des Inputbuffers).
-
@blubb
Häng an deine scanf() mal am Schluss des Formatstrings ein \n an, also z. B.:scanf("%c\n", &zeichen);
-
wie wärs mit:
zeichen=getch();
???
-
chille07 schrieb:
wie wärs mit:
zeichen=getch();
???
Geht nun mal in ANSI-C nicht. Man könnte aber getchar() verwenden, stattdessen. Allerdings hängt das auch wieder davon ab, wie vorher eingelesen wurde. Wenn davor nämlich z. B. ein scanf("%s", ...) ist, dann hast du das gleiche Problem und getchar() wird einfach übergangen (Anstatt scanf("%s", ...) könnte man natürlich fgets() verwenden).
-
Setz mal folgende 2 Zeilen hinter jedes Einlesen. das könnte dir so manchen Fehler ersparen.
while (getchar() != '\n')
;