fstream是C++中用于文件读写的核心类,结合了ifstream和ofstream功能,支持文本和二进制文件操作。使用前需包含<fstream>头文件,并通过open()函数或构造函数以指定模式(如ios::in、ios::out、ios::binary等)打开文件。读写文本时可使用<<和getline(),处理二进制数据则用read()和write()配合reinterpret_cast操作原始字节。每次操作后应检查is_open()等状态标志,并调用close()关闭文件,确保资源释放与错误处理正确。掌握这些可实现配置、日志、数据存储等常见文件任务。

在C++中,fstream 是用于文件输入输出操作的核心类,它结合了 ifstream(输入文件流)和 ofstream(输出文件流)的功能,允许对文件进行读取、写入甚至同时进行。使用 fstream 可以方便地处理文本文件和二进制文件。
要使用文件流,必须包含 <fstream> 头文件:
#include <fstream>C++ 提供了三种主要的文件流类:
可以使用 open() 函数或构造函数打开文件。常用方式如下:
立即学习“C++免费学习笔记(深入)”;
fstream file;常用的打开模式包括:
多个模式可以用按位或(|)组合使用。
以下是一个简单的读写文本文件的例子:
#include <fstream>int main() {
fstream file("example.txt", ios::out);
if (!file.is_open()) {
cout << "无法创建文件!" << endl;
return 1;
}
file << "Hello, fstream!" << endl;
file << 12345 << endl;
file.close();
// 重新以读方式打开
file.open("example.txt", ios::in);
if (!file.is_open()) {
cout << "无法打开文件读取!" << endl;
return 1;
}
string line;
while (getline(file, line)) {
cout << line << endl;
}
file.close();
return 0;
}
对于非文本数据(如结构体、数组),推荐使用二进制模式。关键函数是 read() 和 write()。
struct Person {int main() {
Person p1 = {"Tom", 25};
fstream binFile("data.bin", ios::out | ios::binary);
if (binFile) {
binFile.write(reinterpret_cast<char*>(&p1), sizeof(p1));
binFile.close();
}
Person p2;
binFile.open("data.bin", ios::in | ios::binary);
if (binFile) {
binFile.read(reinterpret_cast<char*>(&p2), sizeof(p2));
cout << "姓名:" << p2.name << ", 年龄:" << p2.age << endl;
binFile.close();
}
return 0;
}
注意:使用 reinterpret_cast 将结构体指针转为 char*,以便正确写入原始字节。
文件操作后应检查状态并及时关闭:
使用 close() 显式关闭文件,释放资源。
基本上就这些。掌握 fstream 的基本用法后,可以灵活处理配置文件、日志记录、数据存储等常见任务。关键是选择合适的打开模式,并注意错误处理。
以上就是c++++怎么使用fstream进行文件操作_c++文件输入输出流操作详解的详细内容,更多请关注php中文网其它相关文章!
c++怎么学习?c++怎么入门?c++在哪学?c++怎么学才快?不用担心,这里为大家提供了c++速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号