fopen() 是 C语言的一个标准库函数,定义在
<stdio.h>
头文件中。
fopen() 用于打开文件,方便后续对文件进行读取、写入、追加等操作。fopen()函数的原型如下:
FILE *fopen(const char *filename, const char *mode);
参数
1) filename:指明要打开的文件。本质是一个字符串,由有效的文件名构成,可以是一个完整的路径。
2) mode:指明文件的打开模式。参数 mode 的取值及含义如下表所示。
表:参数mode的取值及含义
mode 的取值 |
含 义 |
"r" |
以“只读”方式打开文本文件(该文件必须已经存在) |
"w" |
以“写入”的方式打开文本文件 |
"a" |
以追加的方式打开一个文本文件 |
"rb" |
以读取的方式打开一个二进制文件(该文件必须已经存在) |
"wb" |
以写入的方式打开一个二进制文件 |
"ab" |
以追加的方式打开一个二进制文件 |
"r+" |
以读或写的方式打开一个文本文件(该文件必须已经存在) |
"w+" |
以读或写的方式创建一个新的文本文件 |
"a+" |
以读或写的方式打开一个文本文件 |
"rb+" |
以读或写的方式打开一个二进制文件(该文件必须已经存在) |
"wb+" |
以读或写的方式创建一个二进制文件 |
"ab+" |
以读或写的方式打开一个二进制文件 |
- 以”r”的方式打开文件时,表示只能从该文件中读取数据,并且保证要打开的文件已经存在,否则将产生错误。
- 以”w”的方式打开文件时,表示只能向文件中写数据。如果原来不存在该文件,则会以指定的文件名创建一个新文件。如果该文件已经存在,则打开文件时原来的数据将被删除。
- 以”a”的方式打开文件时,表示在原文件末尾追加数据。如果打开的文件不存在,则创建一个新文件。
- 以”r+””w+””a+”的方式打开文件时,既可以从该文件中读取数据,也可以向文件中写入数据。以”r+”的方式打开文件时,必须保证该文件是存在的。以”w+”的方式打开文件时,先创建文件然后写入数据。以”r+”的方式打开文件时,原来的文件不被删除,在原来的文件末尾追加数据。
- 以”rb””wb””ab””rb+””wb+””ab+”的方式打开的文件是二进制文件,以”r””w””a””r+””w+””a+”的方式打开的文件是文本文件。
返回值
如果打开成功,则返回一个指向已打开文件的指针;如果打开失败,函数返回 NULL,此时可以使用 perror() 函数确定发生的错误类型。
【实例】下面是一个C语言示例代码,演示了如何使用 fopen() 函数。
- #include <stdio.h>
-
- int main() {
- FILE *file;
-
- file = fopen("example.txt", "w");
- if (file == NULL) {
- perror("文件打开失败");
- return 1;
- }
-
- fprintf(file, "Hello, World!");
-
- fclose(file);
-
- printf("文件成功写入。\n");
-
- return 0;
- }
在这个示例中,使用 fopen() 以写入模式打开一个文件,如果文件不存在,则会创建一个新文件。如果打开文件时遇到错误,使用了 perror() 来打印具体的错误信息。然后,使用 fprintf() 将字符串写入文件,最后使用 fclose() 关闭文件。