在下面的程序中,我试图计算一行中的字符
#include <stdio.h>
/* count characters in input; 1st version */
int main()
{
double nc;
for (nc = 0; getchar() != EOF; ++nc)
;
printf("%.0f\n", nc);
}
但行
printf("%.0f\n", nc)
没有被执行
结果如下:
hello
world
答案 0 :(得分:2)
EOF
只是文件的结尾,而不是行尾。见the documentation。因此,当您按Enter键时,您的程序将保持在for
循环中。您可以通过以下两种方式解决此问题之一:
EOF
(Ctrl-D
)或EOF
。 试试这个:
for (nc = 0; getchar() != '\n'; ++nc)
请注意,您的代码将在您发送的第一个换行符后退出。