我有一个简单的程序(基于C编程语言编辑的例子,第2节1.5.2书),用于字符计数。程序本身很简单,但我没有得到期待的结果。
似乎 numberOfChars 增加了两倍,我不知道为什么......?
int main () {
int numberOfChars;
for(numberOfChars = 0; getchar() != EOF; numberOfChars++)
; //null statement
printf("Number of chars = %d\n", numberOfChars);
return 0;
}
感谢您的帮助: - )
答案 0 :(得分:0)
要获得3
,您可以写:
#include <stdio.h>
int main () {
int numberOfChars = 0;
do {
while(getchar() != '\n')
numberOfChars++;
} while(getchar() != EOF && numberOfChars++);
printf("Number of chars = %d\n", numberOfChars);
return 0;
}
然后按 Ctrl + D 退出嵌套循环。
事实上,你的程序是正确的。它为您提供了6
,因为您输入了6个字符:1
,\n
,2
,\n
,3
,{{ 1}}。
答案 1 :(得分:0)
创建一个文件,然后运行cygwin od程序,然后运行示例C程序:
od -x < testfile
a.out < testfile
然后你可以看到&amp;你在文件中拥有多少个字符,避免出现意外。
作为调试助手,如果我怀疑有问题,我会添加类似的内容:
int c; for(numberOfChars = 0; (c = getchar()) != EOF; numberOfChars++)
printf( "\0x%x", c);
了解我的代码正在进行的处理。