上一页 下一页

C语言编程基础

文本文件

C语言中的文本文件直观易懂。C语言中所有文本文件函数和类型均来自stdio库。

当C程序需要文本I/O时,并且只需要一个输入信息源和一个输出信息接收器时,您可以依赖stdin(标准输入)和stdout(标准输出)。然后,您可以在命令行使用输入和输出重定向,使不同的信息流通过程序。<stdio.h>中有六个不同的I/O命令,可与stdin和stdout一起使用:

广告

  • printf - 将格式化输出打印到stdout
  • scanf - 从stdin读取格式化输入
  • puts - 将字符串打印到stdout
  • gets - 从stdin读取字符串
  • putc - 将字符打印到stdout
  • getc, getchar - 从stdin读取字符

stdin和stdout的优点是易于使用。同样,I/O重定向功能也非常强大。例如,您可能想创建一个从stdin读取并计数字符数量的程序:

#include <stdio.h>
#include <string.h>

void main()
{
    char s[1000];
    int count=0;
     while (gets(s))
        count += strlen(s);
    printf("%d\n",count);
}

输入此代码并运行。它会等待stdin输入,所以请键入几行。完成后,按CTRL-D表示文件结束(eof)。gets函数会读取一行直到检测到eof,然后返回0,从而结束while循环。当您按CTRL-D时,您会在stdout(屏幕)上看到字符数量的计数。(使用man gets或您的编译器的文档了解更多关于gets函数的信息。)

现在,假设您想统计文件中的字符数。如果您将程序编译成名为xxx的可执行文件,您可以键入以下内容:

xxx < filename

文件filename的内容将被用作输入,而不是从键盘接收输入。您也可以使用管道实现相同的效果:

cat < filename | xxx

您还可以将输出重定向到文件:

xxx < filename > out

此命令会将程序生成的字符计数放入名为out的文本文件中。

有时,您需要直接使用文本文件。例如,您可能需要打开一个特定文件并从中读取或写入。您可能希望管理多个输入或输出流,或者创建一个像文本编辑器那样的程序,可以按命令保存和调取数据或配置文件。在这种情况下,请使用stdio中的文本文件函数:

  • fopen - 打开一个文本文件
  • fclose - 关闭一个文本文件
  • feof - 检测文件中的文件结束标记
  • fprintf - 将格式化输出打印到文件
  • fscanf - 从文件读取格式化输入
  • fputs - 将字符串打印到文件
  • fgets - 从文件读取字符串
  • fputc - 将字符打印到文件
  • fgetc - 从文件读取字符