本章节介绍

  • 更详细介绍输入,输出以及缓冲输入和无缓冲输入的区别

  • 如何通过键盘模拟文件结尾条件

  • 如何使用重定向把程序和文件相连接

  • 创建友好的用户界面

8.1单字符I/O:getchar()和putchar()

缓冲分为:全缓冲,行缓冲和不缓冲;

ASI C 将缓冲作为标准;

ASI C不提供调用无缓冲标准的方式。

  1. /* echo.c -- 重复输入*/
  2. #include <stdio.h>
  3. int main(void)
  4. {
  5. char ch;
  6. while ((ch = getchar()) != '#')
  7. putchar(ch);
  8. return 0;
  9. }

image.png

8.3结束键盘输入

8.3.1 文件,流和 键盘

stream 是一个实际输出与输出映射的理想化数据流;

stdin流表示标准输入,stdout表示标准输出

8.3.2 文件结尾

getchar()读取文件结尾返回特殊值EOF;

不必自行定义EOF的值;

将getchar()的返回值(int数据类型)传递给char类型的变量,编译器会发出警告;

  1. /* echo_eof.c -- 重复输入,直到文件结尾*/
  2. //20210315 1906
  3. #include <stdio.h>
  4. int main(void)
  5. {
  6. int ch;
  7. while ((ch = getchar()) != EOF)
  8. putchar(ch);
  9. return 0;
  10. }

image.png

说明

由于本章偏向理论知识,在目前快速过往基础的目标下,学习此章节有些不合时宜,因此暂时放弃,跳过这一个章节,直接学习第九章函数;

时间: 20210315 1912