C语言中的字符计数
在下面的程序中,我试图计算一行中的字符数C语言中的字符计数,c,C,在下面的程序中,我试图计算一行中的字符数 #include <stdio.h> /* count characters in input; 1st version */ int main() { double nc; for (nc = 0; getchar() != EOF; ++nc) ; printf("%.0f\n", nc); } EOF只是文件的结尾,而不是行的结尾。看见因此,当您按下enter键时,您的程序将停留在f
#include <stdio.h>
/* count characters in input; 1st version */
int main()
{
double nc;
for (nc = 0; getchar() != EOF; ++nc)
;
printf("%.0f\n", nc);
}
EOF
只是文件的结尾,而不是行的结尾。看见因此,当您按下enter键时,您的程序将停留在for
循环中。您可以通过以下两种方式之一修复此问题:
- 实际发送程序
(EOF
在大多数基于*nix的系统上),或Ctrl-D
- 检查换行符而不是
李>EOF
for (nc = 0; getchar() != '\n'; ++nc)
请注意,您的代码将在发送第一个换行符后退出。我猜您实际上没有成功编译此程序,您正在执行的是以前编译过的另一个程序版本,该程序打印“hello world”。按
CTRL+Z
或CRTL+D
并输入。@AndyLester操作意味着他/她在终端上输入了它,但没有得到他/她期望的响应(字符计数)——而不是程序突然输出“hello\nworld”。似乎有一个类似的问题(代码几乎完全相同)在这里,这已经得到了回答。。可能重复的
for (nc = 0; getchar() != '\n'; ++nc)