数据结构与算法如何读写文本文件和二进制文件c++
时间: 2024-10-01 10:04:25 浏览: 35
在C++中,数据结构与算法通常通过标准库中的`fstream`(文件流)来操作文本文件和二进制文件。下面分别简述读写这两种文件:
**读取文本文件(如.txt):**
```cpp
#include <fstream>
#include <string>
std::ifstream inputFile("example.txt"); // 打开文件,如果不存在则失败
if (inputFile.is_open()) {
std::string line;
while (getline(inputFile, line)) { // 逐行读取
std::cout << line << std::endl; // 处理每一行的内容
}
inputFile.close(); // 关闭文件
} else {
std::cerr << "无法打开文件!" << std::endl;
}
```
**写入文本文件:**
```cpp
std::ofstream outputFile("output.txt");
if (outputFile.is_open()) {
outputFile << "Hello, World!\n"; // 写入一行
outputFile.close();
} else {
std::cerr << "无法写入文件!" << std::endl;
}
```
**读取二进制文件(如.bin):**
```cpp
#include <fstream>
#include <vector> // 或其他需要存储二进制数据的容器
std::ifstream binaryFile("binary_data.bin", std::ios::binary); // 指定二进制模式
if (binaryFile.is_open()) {
int data;
binaryFile.read(reinterpret_cast<char*>(&data), sizeof(data)); // 读取固定大小的数据
// 处理二进制数据...
binaryFile.close();
} else {
std::cerr << "无法打开二进制文件!" << std::endl;
}
```
**写入二进制文件:**
```cpp
std::ofstream binaryOutFile("binary_output.bin", std::ios::binary);
if (binaryOutFile.is_open()) {
int dataToWrite = 42;
binaryOutFile.write(reinterpret_cast<char*>(&dataToWrite), sizeof(dataToWrite));
binaryOutFile.close();
} else {
std::cerr << "无法写入二进制文件!" << std::endl;
}
```
阅读全文