C++文件访问模式详解

在C++中,文件访问模式主要通过fopen函数或文件流类的构造函数参数指定。以下是常见的文件访问模式及其用途:

基本模式

"r"(只读)
打开文件用于读取,文件必须存在。若文件不存在,打开失败。
示例代码:

FILE* file = fopen("example.txt", "r");

"w"(只写)
打开文件用于写入。若文件存在,内容会被清空;若文件不存在,则创建新文件。
示例代码:

FILE* file = fopen("example.txt", "w");

"a"(追加)
打开文件用于在末尾追加数据。若文件不存在,则创建新文件。
示例代码:

FILE* file = fopen("example.txt", "a");

扩展模式

"r+"(读写)
打开文件用于读写,文件必须存在。写入数据会覆盖当前位置的内容。
示例代码:

FILE* file = fopen("example.txt", "r+");

"w+"(读写+清空)
打开文件用于读写。若文件存在,内容会被清空;若文件不存在,则创建新文件。
示例代码:

FILE* file = fopen("example.txt", "w+");

"a+"(读写+追加)
打开文件用于读写,写入时数据总是追加到文件末尾。若文件不存在,则创建新文件。
示例代码:

FILE* file = fopen("example.txt", "a+");

二进制模式

在模式字符串后添加"b"(如"rb""wb+")可指定二进制模式,适用于非文本文件(如图像、音频)。
示例代码:

FILE* file = fopen("data.bin", "rb");

注意事项
  • 使用fopen后需检查返回值是否为NULL,确保文件成功打开。
  • 操作完成后应调用fclose关闭文件,避免资源泄漏。
  • C++中更推荐使用fstream(如ifstreamofstream)进行面向对象的文件操作。

示例(C++文件流):

#include <fstream>
std::fstream file("example.txt", std::ios::in | std::ios::out);

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐