文本文件
C中的文本文件很简单,不难掌握。所有的文本文件操作函数和相关类型都由stdio库提供。
当您的C程序需要文本输入输出(I/O)功能,且只有一个信息输入来源和一个输出目标时,可以使用stdin(标准输入)和stdout(标准输出)进行编程,然后在命令行使用输入输出重定向,为各信息流指定不同的来源或目标。
- printf - 格式化输出到标准输出设备
- scanf - 从标准输入设备格式化输入
- puts - 向标准输出设备输出一个字符串
- gets - 从标准输入设备读入一个字符串
- putc - 向标准输出设备输出一个字符
- getc, getchar - 从标准输入设备读入一个字符
标准输入输出的优点是易于使用。同时,I/O重定向的功能也非常强大。例如,您要编写一个程序从标准输入读取信息并统计总字符个数:
#include\
#include
void main()
{char s[1000];int count=0;while (gets(s))
count += strlen(s);printf("%dn",count);}
录入上面的程序并运行。运行时程序会等待键盘输入,请键入几行字符,然后用CTRL-D (eof)通知程序输入结束。gets函数不断读取输入行,直至检测到eof,此时返回0并结束while循环。按下CTRL-D后,您将在标准输出设备(屏幕)上看到字符的计数。(可用man gets命令或者从编译器文档获得更多关于gets函数的知识。)
现在假设您要统计某个文件的字符个数。若上面代码编译生成的可执行文件名为xxx,您可以执行以下命令:
xxx < filename
此命令将文件名为filename的文件内容(而非键盘输入的内容)传给程序。也可以使用管道获得同样的结果:
cat < filename | xxx
还可以将输出重定向到一个文件:
xxx < filename > out
此命令将程序得出的字符计数输出到一个名为out的文本文件。
有时需要直接使用文本文件。例如,要打开并读写某个特定的文件。您的程序可能要同时操作多个输入输出流,或者要在运行期间根据需要载入和保存数据文件或配置文件(如文本编辑器)。这时就要使用stdio中的文件I/O函数:
- fopen - 打开一个文本文件
- fclose - 关闭一个文本文件
- feof - 检测文件eof结束标记
- fprintf - 格式化输出到一个文件
- fscanf - 从一个文件读取格式化输入
- fputs - 向文件输出一个字符串
- fgets - 从文件读入一个字符串
- fputc - 向文件输出一个字符
- fgetc - 从文件读入一个字符