Hier ist das Programm: 1 2 3 4 (dann eingeben drücken):Warum eingeben (neue Zeile) wird nicht von scanf verlassen?
#include "stdio.h"
int main()
{
int minx, x, y, z;
printf("Enter four ints: ");
scanf("%i %i %i %i", &minx, &x, &y, &z);
printf("You wrote: %d %d %d %d", minx, x, y, z);
}
sagen, wenn ich wie folgt ein. Die scanf()
läuft und liest den Eingabepuffer = 1 (Leerzeichen) 2 (Leerzeichen) 3 (Leerzeichen) 4 (Leerzeichen) (\ n) es liest bis (\ n) und \ n bleibt im Puffer.
Wenn ich Eingaben wie die folgenden: 1 (drücken dann eingeben) 2 (drücken dann eingeben) 3 (dann drücken eingeben) 4 (drücken dann eingeben). Die scanf()
läuft und liest den Eingabepuffer = 1 (\ n) 2 (\ n) 3 (\ n) 4 (\ n) (\ n).
In diesen 2 Fällen überspringt der scanf()
die Newline, Leerzeichen und versucht, eine int
zu lesen.
Aber wenn ich 1 eingeben (drücken Sie dann eingeben) (drücken Sie dann eingeben) ... die scanf()
dann läuft nie, wenn ich geben behalte das Schlagen.
Meine Frage ist: Was löst scanf()
aus? Wird es nur laufen, nachdem es alle korrekten %d
im Puffer platzierten, dann laufen lassen, wenn der Benutzer Enter drückt?
Die stdio.h enthalten sollte –
Corbin