K&R《C程序语言学习》p12:统计输入的字符数

来源:互联网 发布:windows 10 mobile apk 编辑:程序博客网 时间:2024/06/10 22:28

代码:

#include <stdio.h>int main(int argc, const char * argv[]) {long nc;nc = 0;while(getchar() != EOF){++nc;}printf("%ld\nc", nc);return 0;}


运行结果:



分析:
(1)EOF表示文件结束符。在unix/linux/mac系统中,另起一行并按下ctrl+d表示文件结束;在windowx系统中,另起一行并按下ctrl+z表示文件结束。


(2)++表示自加。nc++和++nc都是表示nc = nc + 1。


(3)循环:以输入ab,换行并按下ctrl+d为例:
最初nc=0。然后进入第一次循环,你按下a时,getchar()得到了a,不是结束符,++nc,nc此时变成了1。
第二次循环,你输入了b,不是结束符,执行++nc,nc此时变成了2。
第三次循环,你输入了换行\n,不是结束符,执行nc++,nc变成了3。
第四次循环,你输入了ctrl+d,等价于EOF,循环结束。nc++不被执行。跳出循环。打印出nc的值,就是3。