发生错误是因为,正如注释所指出的那样,"1"是一个键,而"输入"按下1(或Ctrl- Dfor EOF
)是另一个键.至于为什么两个都打印出"1",这是因为你设置c
为布尔(真/假)值getchar() != EOF
.我认为你想要的是
while ((c = getchar()) != EOF)
如果你的循环在顶部.这将保存按下的键c
然后检查EOF.
发生错误是因为,正如注释所指出的那样,"1"是一个键,而"输入"按下1(或Ctrl- Dfor EOF
)是另一个键.至于为什么两个都打印出"1",这是因为你设置c
为布尔(真/假)值getchar() != EOF
.我认为你想要的是
while ((c = getchar()) != EOF)
如果你的循环在顶部.这将保存按下的键c
然后检查EOF.