返回介绍

9.1.1 文件的打开

发布于 2025-04-11 22:33:04 字数 2015 浏览 0 评论 0 收藏

C 语言中,打开文件需要使用 fopen 函数,该函数原型如下:

FILE *fopen(const char *fname, const char *mode);

fopen 函数的返回值是一个文件流,其实就是一个 FILE 结构体类型的指针。函数执行成功会返回一个指向 FILE 结构体变量的指针,这个结构体变量中包括了文件的名称、大小、属性、缓冲区等相关信息;若函数执行失败,则返回的是空指针。因此,可以通过对 fopen 函数所返回的文件流进行判断,从而获知文件的打开是否成功。

fopen 函数的两个参数都是字符类型的常量指针,即指向字符串常量的指针。其中 fname 用于指定所要打开的文件,可以是文件的绝对路径(从盘符开始的文件路径),也可以是文件的相对路径(从当前工作目录开始的文件路径)。参数 mode 用于指定文件的打开模式,以确定用何种方式对文件进行处理及得到相关的文件流。可选的打开模式如表 9.1 所示。

表 9.1 文件的打开模式

从文件流的角度来看,用“r”模式打开文件会得到一个文件的输入流,用“w”模式打开文件会得到一个文件的输出流,而用带“+”模式打开文件会得到文件的输入、输出流。下面使用 fopen 函数来打开一个文件。例如:

代码中定义了一个 FILE 结构体类型的指针变量 pfile,并调用 fopen 函数,以“r”(只读)模式打开 D 盘(确保 Windows 系统下有 D 盘)下面的文本文件 test.txt,即想得到一个文件的输入流。fopen 函数的返回值被初始化给指针变量 pfile。需注意的是,在 fopen 函数的第一个字符串参数中,使用的是绝对路径“D:\test.txt”,由于斜杠“\”在 C 语言中是作为转义字符来使用的,因此,必须使用“\\”(连续的两个斜杠),才能表示一个斜杠字符本身。

接下来通过 if 语句对指针 pfile 进行检查,若 pfile 不为空指针,则表示文件打开成功,由 printf 函数在控制台窗口打印输出“File opened successfully.”;若 pfile 为空指针,则表示文件打开失败,通过 printf 函数在控制台窗口打印输出“Failed to open file.”。

编译运行程序,如果在计算机的 D 盘中有 test.txt 这个文件的话,就会打印如下结果:

File opened successfully.

若 D 盘下没有 test.txt 这个文件,则会得到如下结果:

Failed to open file.

若是将 fopen 函数的文件打开模式修改为只写,即使用模式字符串“w”,即表示想得到一个文件的输出流。例如:

FILE *pfile = fopen("D:\\test.txt", "w");

则无论在 D 盘(确保 Windows 系统下有 D 盘)下是否存在 test.txt 文件,都会打印输出文件打开成功的结果。因为即使在 D 盘下没有 test.txt 这个文件,它也会自动创建一个。但若此时在 test.txt 文件中手工输入一些内容并保存,当再次执行该程序后,会发现 test.txt 文件中原先输入的内容被清空了,即 test.txt 变成了一个空文件。

如果既想打开一个文件,得到文件的输出流,而又不想让文件的内容被清空,那么就使用含有字符 a 的模式字符串,例如:

FILE *pfile = fopen("D:\\test.txt", "a");

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。