This question already has answers here:
How to enter the value of EOF in the terminal
(4个答案)
2年前关闭。
这是我写的代码:
输出列出了像1、2、3这样的字符数,而不是总计数。除去包围while循环的花括号或将'printf'语句置于循环外,根本没有输出。
否则,由于最后按了'\ n',因此您得到的字符数比实际输入的字符数多1。
(4个答案)
2年前关闭。
这是我写的代码:
int main()
{
int nc;
nc=0;
while(getchar()!=EOF)
{
++nc;
printf("%i\n",nc);
}
return 0;
}
输出列出了像1、2、3这样的字符数,而不是总计数。除去包围while循环的花括号或将'printf'语句置于循环外,根本没有输出。
最佳答案
将print语句保留在while
循环之外,您将获得最终输入的字符总数,而不是每次都打印。加上您是否按下按钮来传递EOF
(在Linux中为ctrl + d
),以便循环结束?
除此之外,使用int从getchar()
获取值并将while循环更改为:
#include<stdio.h>
int main(void)
{
int i;
while((i=getchar())!=EOF)
{
if(i!='\n')
++nc;
}
printf("%d\n",nc);
return 0;
}
否则,由于最后按了'\ n',因此您得到的字符数比实际输入的字符数多1。
关于c - C中输入的字符计数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52457272/
10-11 10:36