题目: 编写一个程序,统计从输入到文件结尾为止的字符数
分析:
- 文件结尾EOF是在stdio.h上定义的;
#define EOF (-1)
- 检测到文件尾时getchar()返回值是EOF,scanf()函数在检测到文件结尾时也返回EOF;
- 判断是否到文件结尾;
while((ch = getchar()) != EOF)
- 键盘键入EOF字符的方式:大多数Unit系统上,在一行的开始键入Ctrl+D会导致传送文件尾信号,有一些微型计算机将一行的开始位置键入Ctrl+Z识别为文件尾信号,还有一些则把任意位置的Ctrl+Z解释为文件尾信号。实验中是在一行的开始键入Ctrl+Z。
实现:
/**< 编写一个程序,统计从输入到文件结尾为止的字符数 */
#include <stdio.h>
#include <stdlib.h>
int main()
{
int ch;
int num_ch = 0;
while((ch = getchar()) != EOF)
{
num_ch++;
}
printf("字符数为%d\n",num_ch);
return 0;
}
运行结果: