我是编程新手,所以请原谅我的愚蠢问题。我在 repl.it 上运行了以下代码和 JDoodle分别。
#include<stdio.h>
int main()
{
int nc;
nc = 0;
while(getchar() != EOF)
nc = nc + 1;
printf("%d\n", nc);
}
关于JDoodle ,结果始终是 x+1,其中 x 是我期望的数字。例如,如果我输入123123
,则结果为7。此外,如果我将输入留空,则JDoodle告诉我你的程序可能有一个无限循环
。为什么会发生这些?
关于repl.it ,我在屏幕右侧输入并回车后没有任何反应。然而输入复制程序
int c;
c = getchar();
while(c != EOF){
putchar(c);
c = getchar();
}
最佳答案
以下建议代码:
- 更正问题评论中讨论的问题。
两个网页之间的差异对于OP看到的问题没有影响。
现在建议的代码:
#include <stdio.h>
int main( void )
{
int nc = 0;
int ch; // the character input from stdin
while( (ch = getchar()) != EOF && '\n' != ch)
nc = nc + 1;
printf("%d\n", nc);
}
关于c - 在线编译器上 C 字符计数程序的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46556591/