我开始学习“C编程语言”,书中的一段代码对我不适用。此代码假设使用 getchar() .
getchar()
这是我的代码:
#include <stdio.h> int main() { long nc; nc = 0; while (getchar() != EOF) ++nc; printf("%1d\n", nc); return 0; }
我试着运行它并写一些字符,但当我按下 ENTER ,它只会开始一条新的线路。这就好像它永远不会退出循环。
ENTER
换行符不是 EOF . 你很困惑 EOF公司 和 EOL .
EOF
EOF公司
EOL
当你的媒体 ENTER , getchar() 接收换行符: \n ,并且您的程序会像其他任何角色一样对其进行计数。
\n
尝试按 CTRL + D (Linux终端)或 CTRL键 + Z (Windows终端)发送 空输入 你的程序,从而结束它。
CTRL
D
CTRL键
Z
您还可以将输入写入文件,并将此文件作为输入提供给您的程序,如下所示:
./your_program < your_file
当您的输入来自文件时 EOF公司 到达文件末尾时自动发送到程序。这是因为没有更多的输出可以从文件中获得。