while ((c = getchar ())! = EOF) Nie kończąc
Czytałem „The C Programming Language” i dotarłem do tej części wejść i wyjść.
Przeczytałem inne wątki mówiące, że konsola nie rozpoznaje wpisu jakoEOF
. Więc powinienem użyćCTRL + Z w systemie Windows lubCTRL + D w Uniksie (żaden z nich nie działa dla mnie).
Czytam też innych ludzi, którzy pytają tego samego, mówiąc, że mogą sprawić, że to zadziała, problem w ich kodach był składnią, a nie zakończeniem programu.
Czy jest inne rozwiązanie?
To jest kod:
#include <stdio.h>
main()
{
int nb, nl, nt, c;
nb = 0;
nl = 0;
nt = 0;
while ((c = getchar()) != '\n'){
if (c == ' ')
++nb;
else if (c == '\n')
++nl;
else if (c == '\t')
++nt;
}
printf("Input has %d blanks, %d tabs, and %d newlines\n", nb, nt, nl);
}
Edytuj: The\n
miał być EOF, bałaganiłam przed wysłaniem i zapomniałam, że to zmieniłam: P
Ani nie działa z EOF, tylko pominąłem ten.