编写一个程序,复制输入的字符,直到输入结束;并统计输入字符的个数。这个程序用到getchar()和putchar()函数。getchar每次从键盘读入一个字符(按下回车后开始读),返回读入字符的值;putchar是在屏幕上打印一个字符。
#include<stdio.h>
int main() {
int c;
double nc=0;
/*当遇到结束标志EOF时,跳出while循环 */
while((c=getchar())!=EOF) {
putchar(c);//输出字符c
printf("\t%d",c);//输出字符的ASCII码
nc++; //统计输入的字符数
}
printf("nc = %.0f\n",nc);
printf("EOF = %d",c);
return 0;
}
EOF是文件结束标识,在Windows系统中为Ctrl+Z。下面来测试一下程序,输入abcd回车,程序执行复制字符并输出;接着输入Ctrl+Z回车,程序结束while循环,输出nc和EOF。这里要注意,Ctrl+Z作为文件结束标志要在一行的开头,也就是要紧跟着回车。如果输入abcdCtrl+Zef回车,程序执行复制字符并输出,这时Ctrl+Z是→符号,其值为26,并且Ctrl+Z后面输入的字符没有读入;再输入Ctrl+Z回车,跳出while循环,统计的输入字符数nc=5。