doc/notebook/docs/C++/2.fstream.md

87 lines
2.7 KiB
Markdown
Raw Normal View History

1. `std::ifstream`: 用于从文件中读取数据的输入流对象。常用的成员函数包括:
- `open(const char* filename)`: 打开指定文件名的文件。
- `close()`: 关闭文件。
- `is_open()`: 判断文件是否已经打开。
- `good()`: 判断文件流状态是否良好。
```cpp
#include <fstream>
#include <iostream>
int main() {
std::ifstream inputFile;
inputFile.open("input.txt");
if (inputFile.is_open()) {
std::cout << "File opened successfully." << std::endl;
// 读取文件内容
std::string line;
while (std::getline(inputFile, line)) {
std::cout << line << std::endl;
}
inputFile.close();
} else {
std::cerr << "Unable to open file." << std::endl;
}
return 0;
}
```
2. `std::ofstream`: 用于向文件中写入数据的输出流对象。常用的成员函数包括:
- `open(const char* filename)`: 创建或打开指定文件名的文件。
- `close()`: 关闭文件。
- `is_open()`: 判断文件是否已经打开。
- `good()`: 判断文件流状态是否良好。
```cpp
#include <fstream>
#include <iostream>
int main() {
std::ofstream outputFile;
outputFile.open("output.txt");
if (outputFile.is_open()) {
std::cout << "File opened successfully." << std::endl;
// 写入数据到文件
outputFile << "Hello, world!" << std::endl;
outputFile << 42 << std::endl;
outputFile.close();
} else {
std::cerr << "Unable to open file." << std::endl;
}
return 0;
}
```
3. `std::fstream`: 同时支持读写操作的文件流对象。常用的成员函数包括:
- `open(const char* filename, std::ios_base::openmode mode)`: 打开指定文件名的文件,并指定打开模式(例如`std::ios::in`表示读取模式,`std::ios::out`表示写入模式)。
- `close()`: 关闭文件。
- `is_open()`: 判断文件是否已经打开。
- `good()`: 判断文件流状态是否良好。
```cpp
#include <fstream>
#include <iostream>
int main() {
std::fstream file;
file.open("data.txt", std::ios::out | std::ios::app);
if (file.is_open()) {
std::cout << "File opened successfully." << std::endl;
// 写入数据到文件
file << "Appended line." << std::endl;
file.close();
} else {
std::cerr << "Unable to open file." << std::endl;
}
return 0;
}
```
这些函数和对象使得在C++中进行文件输入输出操作变得简单和方便。