Ich versuche, diesen Codeblock auszuführen.Warum wird nicht die zweite scanf() ausführen
#include <stdio.h>
int main(void)
{
printf("Start from here\n");
int e, f, g, h;
scanf("%d,%d", &e, &f);
scanf("%d, %d", &g, &h);
printf("%d %d %d %d", e, f, g, h);
}
Wenn ich Eingang 2,0
oder etwas, das die Format-String in der ersten scanf()
übereinstimmt, auch die zweite scanf()
ausführt.
Allerdings, wenn ich Eingang etwas wie 2-0
im ersten scanf()
, das Programm die zweite scanf()
überspringt und geht direkt zu dem printf()
Zum Beispiel ist hier der Eingang und der Ausgang eines Probelauf des Programms. Die zweite Zeile ist die Eingabe.
Start from here
1-2
1 0 -2 -856016624u
Beachten Sie, wie das Programm übersprungen vollständig den zweiten scanf()
, und ging direkt in die printf()
. Warum wird der zweite scanf()
hier übersprungen?
'1-2' sollte' 1, -2' sein? Das ist ein Komma zwischen den Zahlen. Denn das hast du 'scanf' gesagt. – kaylum
Ihre zweite 'scanf' wird ausgeführt.'e' wird' 1' und 'g' wird' -2' –
Warum überprüfen Sie nicht die Rückgabewerte von 'scanf'? Es könnte praktisch sein, die Handbuchseite –