k&R,getchar如何阅读EOF

Tar*_*run 5 c getchar

从k&r读书时,我遇到了以下例子

#include<stdio.h>
int main()
{
int c;
while((c=getchar())!=EOF)
{
    putchar(c);
}
printf("hello");
}
Run Code Online (Sandbox Code Playgroud)

怀疑1:当我输入字符ctrl + z(我的系统上的EOF)时.o/p是你好
但当我输入字符串如abcdef ^ Zghijk
o/p是abcdef - >(包括箭头)并等待用户输入i/p而不是终止循环并打印你好..

hrn*_*rnt 5

ctrl+z 不是EOF,它只是一种告诉终端关闭流的方法.

在Windows系统上,您需要ctrl+z将该行写为该行的第一个字符,否则终端会将其视为普通字符.