Próbuję wykonać ten blok kodu.Dlaczego druga funkcja scanf() nie wykona
#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);
}
Kiedy wejście 2,0
lub coś, co odpowiada ciąg formatu w pierwszej scanf()
, drugi scanf()
wykonuje również.
Jednakże, jeśli wejście coś 2-0
w pierwszym scanf()
, program pomija drugi scanf()
i idzie prosto do printf()
Na przykład, tutaj jest wejście i wyjście z biegiem próbki programu. Druga linia to dane wejściowe.
Start from here
1-2
1 0 -2 -856016624u
Wskazówki jak program całkowicie pominięty drugi scanf()
i poszedł prosto do printf()
. Dlaczego tutaj pomijany jest drugi scanf()
?
'1-2' powinno być' 1, -2'? To znaczy przecinek między liczbami. Ponieważ właśnie tak powiedziałeś 'scanf'. – kaylum
Twój drugi 'scanf' jest wykonywany.'e' pobiera' 1' i 'g' dostaje' -2' –
Dlaczego nie sprawdzasz wartości zwracanych przez 'scanf'? Może być przydatny do przeczytania strony podręcznika –