Funkcja scanf przed innymi funkcjami.

0

Cześć! Mam pewnie dość proste pytanie. Otóż po skompilowaniu poniższego kodu w C program najpierw chce otrzymać z klawiatury zmienną liczba, a dopiero potem wyświetla całą resztę, chociaż kod programu sugeruje odwrotną kolejność.

Czy mógłby mi ktoś pomóc, gdzie może istnieć przyczyna tego stanu rzeczy?

           int liczba = 0;
	   printf ("Podaj liczbę: ");
	   scanf ("%d", &liczba);
	   printf ("%dx%d=%d\n", liczba, liczba, liczba*liczba);
	   return 0;
0

chociaż kod programu sugeruje odwrotną kolejność
że what?

Podaj liczbŕ: 678
678x678=459684
Aby kontynuować, naciśnij dowolny klawisz . . .
0

Niektóre konsole buforują wysyłane do nich znaki, więc jeżeli masz takie zjawisko to potrzebujesz tego:
printf ("Podaj liczbę: ");
fflush(stdout); // wymusi wyświetlenie tego co podał printf
scanf ("%d", &liczba);

0

A czy jest możliwość jakiegoś ustawienia konsoli, bym nie musiał po każdym printf dopisywać fflush(stdout)?

0

Dla niektórych tak, dla niektórych nie. Podaj konkretnie jaką masz konsole, pod jakim systemem operacyjnym, wtedy twoje pytanie będzie miało sens.

0

Używam IDE Eclipse for C/C++ Juno
Kompilator: MinGW GCC
Windows 7 64

0
robert34 napisał(a):

A czy jest możliwość jakiegoś ustawienia konsoli, bym nie musiał po każdym printf dopisywać fflush(stdout)?

http://www.cplusplus.com/reference/clibrary/cstdio/setvbuf/ patrz _IONBF

1 użytkowników online, w tym zalogowanych: 0, gości: 1