I have this but once it reaches the supposed EOF it just repeats the loop and scanf again.
int main(void)
{
char words[16];
while(scanf("%15s", words) == 1)
printf("%s\n", words);
return 0;
}
I have this but once it reaches the supposed EOF it just repeats the loop and scanf again.
int main(void)
{
char words[16];
while(scanf("%15s", words) == 1)
printf("%s\n", words);
return 0;
}
Man, if you are using Windows, EOF is not reached by pressing enter, but by pressing Crtl+Z at the console. This will print "^Z", an indicator of EOF. The behavior of functions when reading this (the EOF or Crtl+Z):
| Function | Output |
|---|---|
scanf(...) |
EOF |
gets(<variable>) |
NULL |
feof(stdin) |
1 |
getchar() |
EOF |
I guess best way to do this is ...
int main()
{
char str[100];
scanf("[^EOF]",str);
printf("%s",str);
return 0;
}