C 语言中的 fopen() 函数详解

在 C 语言中,我们可以使用 fopen() 函数以指定的模式打开文件。该函数会返回一个文件指针(FILE *),后续我们可以利用这个指针对文件执行进一步的操作,比如读取数据或写入内容。如果文件已经存在,fopen() 会直接打开它;而在某些模式下,如果文件不存在,fopen() 则会创建一个新文件。

让我们通过一个简单的示例来看看它是如何工作的:

C


CODEBLOCK_5c98a54d

当我们运行上述程序时,将会创建一个名为 “demo_file.txt” 的新文件,其内容如下:

demo_file.txt

Welcome to GeeksforGeeks

fopen() 的语法

> fopen (filename, mode);

参数说明:

  • filename: 我们要打开的文件名称(包含扩展名)。
  • mode: 打开文件的目的或模式(读、写等)。

返回值:

  • 如果文件成功打开,返回一个 FILE 指针。
  • 如果打开失败,则返回 NULL。

文件打开模式

下表列出了 fopen() 函数有效的模式值及其含义:

打开模式

描述

r

搜索文件。仅以读取模式打开文件。如果成功打开,fopen() 会将文件加载到内存并设置一个指向文件首字符的指针。如果无法打开文件,fopen() 返回 NULL。

w

搜索文件。如果文件已存在,其内容将被覆盖。如果文件不存在,则会创建一个新文件。如果无法打开文件,返回 NULL。它仅用于创建新文件进行写入(不可读取)。

a

搜索文件。如果成功打开,fopen() 会将文件加载到内存并设置一个指向文件末尾的指针。如果文件不存在,则会创建一个新文件。如果无法打开文件,返回 NULL。文件仅用于追加操作(在文件末尾写入)。

r+

搜索文件。以读取和写入模式打开文件。如果成功打开,fopen() 会将文件加载到内存并设置一个指向文件首字符的指针。如果无法打开文件,返回 NULL。

w+

搜索文件。如果文件存在,其内容将被覆盖。如果文件不存在,则会创建一个新文件。如果无法打开文件,返回 NULL。w 和 w+ 的区别在于,使用 w+ 创建的文件我们也可以进行读取。

a+

搜索文件。如果成功打开,fopen() 会将文件加载到内存并设置一个指向文件末尾的指针。如果文件不存在,则会创建一个新文件。如果无法打开文件,返回 NULL。文件用于读取和追加操作(在文件末尾写入)。

rb

以读取模式打开二进制文件。如果文件不存在,open() 函数返回 NULL。

wb

以写入模式打开二进制文件。由于指针被设置在文件开头,内容会被覆盖。如果文件不存在,会创建一个新文件。

ab

以追加模式打开二进制文件。文件指针被设置在文件最后一个字符之后。如果不存在同名文件,将创建一个新文件。

rb+

以读写模式打开二进制文件。如果文件不存在,open() 函数返回 NULL。

wb+

以读写模式打开二进制文件。如果文件存在,内容将被覆盖。如果文件不存在,将被创建。

ab+

以读取和追加模式打开二进制文件。如果文件不存在,将创建一个新文件。建议我们在完成所有操作后,使用 fclose() 函数关闭已打开的文件,以释放资源。

fopen() 使用示例

下面的示例演示了如何使用 fopen() 以不同的模式打开文件:

以读取模式打开文件

C


CODEBLOCK_9ace93a1

Output

Error opening file!

解释: 我们尝试以读取模式("r")打开 example.txt 文件。如果文件存在,它会成功打开。如果文件不存在,fopen() 会返回 NULL,程序随后会输出一条错误信息。

以写入模式打开文件

C


CODEBLOCK_ffe1e2ad

*

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/28001.html
点赞
0.00 平均评分 (0% 分数) - 0