我试图输入输入中的字符数,如下所示:
#include <stdio.h>
/* count characters in input; 1st version */
main(){
long nc;
nc = 0;
while (getchar() != EOF)
++nc;
printf("%ld\n",nc);
}
但它没有输出任何东西。怎么了?
答案 0 :(得分:3)
这是因为你没有输入任何东西。 EOF并不意味着没有可用的角色; getchar()只是等待输入。 EOF表示你有CTRL + Z或CTRL + D.
答案 1 :(得分:1)
Someone asked the same question here 它应该回答你的问题,许多人的好解释
摘要来源和答案:
EOF表示&#34;文件结束&#34;。使用CTRL-D(unix风格系统)或CTRL-Z(Windows),循环将终止
答案 2 :(得分:0)
试试这个版本:
#include <stdio.h>
int main(void)
{
long nc = 0;
do
{
printf("%ld chars read so far, hit any key or Ctrl-D/Ctrl-Z to end.\n", nc);
++nc;
} while (getchar() != EOF)
printf("total number of chars entered: %ld\n", nc);
}