在 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() 函数有效的模式值及其含义:
描述
—
搜索文件。仅以读取模式打开文件。如果成功打开,fopen() 会将文件加载到内存并设置一个指向文件首字符的指针。如果无法打开文件,fopen() 返回 NULL。
搜索文件。如果文件已存在,其内容将被覆盖。如果文件不存在,则会创建一个新文件。如果无法打开文件,返回 NULL。它仅用于创建新文件进行写入(不可读取)。
搜索文件。如果成功打开,fopen() 会将文件加载到内存并设置一个指向文件末尾的指针。如果文件不存在,则会创建一个新文件。如果无法打开文件,返回 NULL。文件仅用于追加操作(在文件末尾写入)。
搜索文件。以读取和写入模式打开文件。如果成功打开,fopen() 会将文件加载到内存并设置一个指向文件首字符的指针。如果无法打开文件,返回 NULL。
搜索文件。如果文件存在,其内容将被覆盖。如果文件不存在,则会创建一个新文件。如果无法打开文件,返回 NULL。w 和 w+ 的区别在于,使用 w+ 创建的文件我们也可以进行读取。
搜索文件。如果成功打开,fopen() 会将文件加载到内存并设置一个指向文件末尾的指针。如果文件不存在,则会创建一个新文件。如果无法打开文件,返回 NULL。文件用于读取和追加操作(在文件末尾写入)。
以读取模式打开二进制文件。如果文件不存在,open() 函数返回 NULL。
以写入模式打开二进制文件。由于指针被设置在文件开头,内容会被覆盖。如果文件不存在,会创建一个新文件。
以追加模式打开二进制文件。文件指针被设置在文件最后一个字符之后。如果不存在同名文件,将创建一个新文件。
以读写模式打开二进制文件。如果文件不存在,open() 函数返回 NULL。
以读写模式打开二进制文件。如果文件存在,内容将被覆盖。如果文件不存在,将被创建。
以读取和追加模式打开二进制文件。如果文件不存在,将创建一个新文件。建议我们在完成所有操作后,使用 fclose() 函数关闭已打开的文件,以释放资源。
fopen() 使用示例
下面的示例演示了如何使用 fopen() 以不同的模式打开文件:
以读取模式打开文件
C
CODEBLOCK_9ace93a1
Output
Error opening file!
解释: 我们尝试以读取模式("r")打开 example.txt 文件。如果文件存在,它会成功打开。如果文件不存在,fopen() 会返回 NULL,程序随后会输出一条错误信息。
以写入模式打开文件
C
CODEBLOCK_ffe1e2ad
*