英文原版:P539
C语言的输入/输出库是标准库中最大且最重要的部分。由于输入/输出库很重要,我们将用一整章的篇幅来讨论头文件<stdio.h>,主要存放的是输入/输出函数。
从第2章开始,我们就一直在使用<stdio.h>,对printf、scanf、putchar、getchar、puts、gets等函数有一定的了解。
这一章不仅会提供更多有关这6个函数的信息,而且会介绍许多新函数,其中大部分跟文件处理有关。值得庆幸的是,大部分新函数跟已经介绍过的函数紧密相关,比如fprintf就是printf的文件版本。
本章的主要内容有:
- 22.1节讨论流
stream的概念、FILE类型、重定向输入和输出、文本文件跟二进制文件之间的区别等基本问题。 - 22.2节介绍特别为使用文件而设计的函数,比如打开文件、关闭文件等。
- 22.3节介绍格式化输入/输出函数:
printf、scanf等。 - 22.4节介绍一次读写一个字符的函数:
getc、putc等。 - 22.5节介绍一次读写一行的函数:
gets、puts等。 - 22.6节介绍读写块数据的函数:
fread、fwrite等。 - 22.7节展示如何对文件执行随机访问操作。
- 22.8节描述
sprintf、snprintf、sscanf等函数,其中这些函数是printf、scanf的变体,用于写入和读取一个字符串。
本章忽略了头文件<stdio.h>中的8个函数,
- 将跟头文件
<errno.h>紧密相关的perror函数延后到24.2节讨论。 - 将
vfprintf、vprintf、vsprintf、vsnprintf、vfscanf、vscanf、vsscanf等依赖va_list类型的函数延后到26.1节讨论。
C89把所有的标准输入/输出函数都放在头文件<stdio.h>中。C99将一些I/O函数声明在头文件<wchar.h>中,该头文件里的函数处理的是宽字符而不是普通字符。
在<stdio.h>中读写数据的函数叫做字节I/O函数,在<wchar.h>中读写数据的函数叫做宽字符I/O函数。