C++学习, 文件
C++标准库提供了丰富的功能来处理文件,这些功能主要通过<fstream>
头文件中的类来实现,比如ifstream
(用于从文件读取数据)、ofstream
(用于向文件写入数据)和fstream
(同时支持读写操作)。
打开文件,在从文件读取信息或者向文件写入信息之前,ofstream 和 fstream 对象都可以用来打开文件进行写操作。只需要打开文件进行读操作,则使用 ifstream 对象。open() 函数是 fstream、ifstream 和 ofstream 对象的一个成员。
open函数:
void open(const char *filename, ios::openmode mode);
open() 成员函数,第一参数要打开文件名称和位置,第二个参数文件被打开的模式。
模式标志 | 描述 |
---|---|
ios::app | 追加模式。所有写入都追加到文件末尾。 |
ios::ate | 文件打开后定位到文件末尾。 |
ios::in | 打开文件用于读取。 |
ios::out | 打开文件用于写入。 |
ios::trunc | 如果该文件已经存在,其内容将在打开文件之前被截断,即把文件长度设为 0。 |
打开文件示例:
使用ifstream
打开文件进行读取
#include <fstream>
#include <iostream>
#include <string>
int main() {
std::ifstream file("test.txt"); // 在构造函数中打开文件
if (file.is_open()) {
std::string line;
while (getline(file, line)) { // 循环读取文件的每一行
std::cout << line << '\n';
}
file.close(); // 关闭文件
} else {
std::cout << "Unable to open file";
}
return 0;
}
使用ofstream
打开文件进行写入
<fstream>
#include <iostream>
int main() {
std::ofstream file("output.txt"); // 创建并打开文件用于写入
if (file.is_open()) {
file << "Hello, World!\n"; // 写入一行文本
file.close(); // 关闭文件
} else {
std::cout << "Unable to open file";
}
return 0;
}
关闭文件,程序终止前,需要主动关闭所有打开的文件。 C++ 程序终止时,会自动关闭刷新所有流,释放所有分配的内存,并关闭所有打开的文件。close() 函数是 fstream、ifstream 和 ofstream 对象的一个成员。
close函数:
void close();