Why Ctrl+Z does not trigger the loop to finish on the following small program?
#include
EOF
like you use it is not a character. It's the status in which that stream is.
I mean, heck, you even link this question, so you might as well read the accepted answer:
The underlying form of an EOF is a zero-length read.
It's not an "EOF character".
http://www.c-faq.com/stdio/getcharc.html cites a different case than yours, where someone stored the return value of getchar
in a char
. The underlying problem still occurs occasionally: different runtimes implement different values for the EOF
integer (which is why I said, it's not an EOF character), and things love to go wrong. Especially in Visual C++, which is not a "real" C compiler but a C++ compiler with a compatibility mode, it seems things can go wrong.
You need to hit Enter and then use ctrl+Z and then Enter again.
or, you may also use F6