C++文件操作:读写文本与二进制文件

需积分: 0 0 下载量 45 浏览量 更新于2024-08-04 收藏 22KB DOCX 举报
"C++文件操作学习笔记" C++中的文件操作是编程中一个重要的部分,它允许我们将数据保存到磁盘上以便后续使用或与其他程序共享。文件操作主要涉及读取、写入和处理文件,这在许多实际应用中都是必不可少的。C++通过标准库中的`<fstream>`头文件提供了支持文件操作的功能。 文件类型主要有两种: 1. 文本文件:这种类型的文件以ASCII码形式存储数据,人类可以直接阅读。在C++中,通常用于保存文本信息,如文本文档、日志等。 2. 二进制文件:这种文件以二进制形式存储数据,数据未经格式化,人类难以直接理解。二进制文件通常用于存储图像、音频、程序代码等非文本数据,因为它们可以更有效地占用磁盘空间。 C++提供了三个类来处理文件操作: 1. `ofstream`:用于写操作。创建一个`ofstream`对象并调用`open()`函数可以打开一个文件进行写入。使用`<<`运算符可以将数据写入文件。 2. `ifstream`:用于读操作。与`ofstream`类似,但用于从文件中读取数据,而不是写入。 3. `fstream`:同时支持读写操作。这个类可以打开一个文件并根据需要进行读取或写入。 下面以写文件为例,介绍C++中文件操作的基本步骤: ```cpp void test() { // 1. 包含头文件 #include <fstream> // 2. 创建流对象 ofstream ofs; // 3. 打开文件 ofs.open("test.txt", ios::out); // 4. 写数据 ofs << "写入的数据" << endl; ofs << "Tom" << endl; // 5. 关闭文件 ofs.close(); } ``` 读文件的操作与此类似,但使用`ifstream`类和`>>`运算符来读取数据。例如: ```cpp // 读文件示例 void readTest() { // 1. 包含头文件 #include <fstream> // 2. 创建流对象 ifstream ifs; // 3. 打开文件 ifs.open("test.txt", ios::in); // 4. 读数据 string data; while (ifs >> data) { cout << data << endl; } // 5. 关闭文件 ifs.close(); } ``` 文件打开方式有多种组合,如: - `ios::in`:只读方式打开文件。 - `ios::out`:只写方式打开文件。 - `ios::ate`:初始位置设置在文件末尾。 - `ios::app`:追加方式写入,不会覆盖原有内容。 - `ios::trunc`:如果文件已存在,先删除再创建,即清空文件。 - `ios::binary`:二进制方式,用于处理二进制数据。 这些方式可以结合使用,例如,要以二进制方式写入文件,可以使用`ios::binary | ios::out`。 在进行文件操作时,要注意异常处理和错误检查,确保文件正确打开和关闭,以防止数据丢失或损坏。同时,对于大型项目,通常会使用RAII(Resource Acquisition Is Initialization)设计模式,通过智能指针(如`std::unique_ptr`)自动管理文件流的生命周期,确保即使在发生异常时也能正确关闭文件。