该代码源自“The C Programming Language,Second Edition”:
#include <stdio.h>
main()
{
long nc;
nc = 0;
while(getchar() != EOF)
++nc;
printf("%s: %ld\n", "number of characters", nc);
}
为什么在按下“回车”键(EOF)后没有执行“printf”语句?
答案 0 :(得分:6)
回车键是不是 EOF。根据您的系统,它将发送回车符(0x0D或'\r'
),换行符(0x0A或'\n'
)或两者。
在Linux(可能是Unix)上,可以通过Ctrl + D发送EOF。在Windows上,它应该是Ctrl + Z(但您可能需要在之后按Enter键)。
答案 1 :(得分:1)
如果你想在点击 ENTER 键后执行printf
,你应该改变它:
while(getchar() != EOF)
为:
while(getchar() != '\n')
EOF(文件结尾)与ENTER不同。
你可能想考虑获得一本更新的书。