fgets wird übersprungen??
-
Hallo, ich habe ein Problem mit meinem Programm und zwar er überspringt immer die fgets Eingabe. Anschließend gibt er einfach einen leeren String aus.
Warum? Verstehe ich überhaupt nicht?Rufe ich die Funktion "abfrage" nicht in der while Schleife auf funktioniert die Eingabe
int main(void) { int x=1; while(x!=0) { x=menu(); switch(x) { case 1: abfrage(); break; default: printf("Na??"); } } return 1; } int menu() { int x=0; printf("\n Bitte wählen Sie: \n 1. Abfrage\n 2. Eingabe\n 0. Beenden\n"); fflush(stdin); scanf("%i",&x); return x; } void abfrage(void) { char query[20]; puts("Abfrage:"); //sscanf(stdin,"%s",query); fgets(query, 20, stdin); printf("\n????:%s\n",query); //daten_abrufen(query,1); }
MfG Carsten
-
Tip schau auf:
http://www.openbsd.org/cgi-bin/man.cgi?query=fgets&apropos=0&sektion=3&manpath=OpenBSD+Current&arch=i386&format=html
-
Ja hmmmm ... Warum habe ich verstanden!
Weiss aber keine Lösung wie ich die Standarteingabe auf NULL setze.
fflush -> funzt nicht
fpurge -> Kein ANSI Cunter Linux - Debian
??? Jemand ne Idee
-
wranger schrieb:
??? Jemand ne Idee
Benutze zum Einlesen ausschließlich fgets().
-
hat er das nicht gemacht`?
-
Krugman schrieb:
hat er das nicht gemacht`?
Nein hat er nicht, siehe Funktion menu().