帮助 K&R 计算字符示例

2023-12-28

我正在阅读 K&R 的第二版,我被这个看似简单的例子难住了:

#include <stdio.h>

main(){
    double c;
    for(c = 0; ((getchar() != EOF) && (getchar() != '\n')); ++c)
        ;
    printf("%.0f\n",c);
}

它根本无法正常工作。我添加在(getchar() != '\n')当我按回车键时结束程序的部分,但这并没有really也有帮助。

这是一些示例输出,使用gcc附带 Mac OSX 10.6 开发工具。

pool-000:Desktop user$ ./a.out 
a
0
pool-000:Desktop user$ ./a.out 
asdf

2
pool-000:Desktop user$ ./a.out 
asfasf

3

所以显然有些事情是错误的。我在第18页,如果有帮助的话。这不是作业,这是为了好玩!

谢谢 :)


每次致电getchar()将等待读取一个字符,因此您在每次循环迭代中读取的内容比您想象的要多。

另外,至少在我看来,计数器(几乎)从来都不是double,您应该使用整数类型,例如普通旧int.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

帮助 K&R 计算字符示例 的相关文章

随机推荐