这是我写的代码:
int main()
{
int nc;
nc=0;
while(getchar()!=EOF)
{
++nc;
printf("%i\n",nc);
}
return 0;
}
输出列出诸如1,2,3之类的字符数,而不是总计数。除去封闭while循环的花括号或将'printf'语句置于循环外,根本没有输出。
答案 0 :(得分:1)
将print语句保留在while
循环之外,您将获得最终输入而不是每次打印的总字符数。 PLUS ,您是否按下按钮来传递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 。