fstream是C++中用于文件读写的核心类,结合了ifstream和ofstream功能,支持文本和二进制文件操作。使用前需包含头文件,并通过open()函数或构造函数以指定模式(如ios::in、ios::out、ios::binary等)打开文件。读写文本时可使用

在C++中,fstream 是用于文件输入输出操作的核心类,它结合了 ifstream(输入文件流)和 ofstream(输出文件流)的功能,允许对文件进行读取、写入甚至同时进行。使用 fstream 可以方便地处理文本文件和二进制文件。
包含头文件与基本类型
要使用文件流,必须包含 头文件:
#include
#include iostream>
#include
using namespace std;
C++ 提供了三种主要的文件流类:
ofstream:从内存向文件写数据(输出)ifstream:从文件读取数据到内存(输入)fstream:支持读写操作,可同时打开文件进行输入输出
打开文件的方法
可以使用 open() 函数或构造函数打开文件。常用方式如下:
立即学习“C++免费学习笔记(深入)”;
fstream file;
file.open(“data.txt”, ios::in | ios::out); // 同时读写
// 或者直接构造:
fstream file(“data.txt”, ios::in | ios::out);
常用的打开模式包括:
ios::in – 读取文件ios::out – 写入文件(默认会清空内容)ios::app – 追加模式,在文件末尾添加内容ios::ate – 打开后立即定位到文件末尾ios::binary – 以二进制方式操作ios::trunc – 若文件存在则清空内容(默认写入行为)
多个模式可以用按位或(|)组合使用。
读写文本文件示例
以下是一个简单的读写文本文件的例子:
#include
#include
#include
using namespace std;
int main() {
fstream file(“example.txt”, ios::out);
if (!file.is_open()) {
cout return 1;
}
file file file.close();
// 重新以读方式打开
file.open(“example.txt”, ios::in);
if (!file.is_open()) {
cout return 1;
}
string line;
while (getline(file, line)) {
cout }
file.close();
return 0;
}
二进制文件操作
对于非文本数据(如结构体、数组),推荐使用二进制模式。关键函数是 read() 和 write()。
struct Person {
char name[20];
int age;
};
int main() {
Person p1 = {“Tom”, 25};
fstream binFile(“data.bin”, ios::out | ios::binary);
if (binFile) {
binFile.write(reinterpret_cast(&p1), sizeof(p1));
binFile.close();
}
Person p2;
binFile.open(“data.bin”, ios::in | ios::binary);
if (binFile) {
binFile.read(reinterpret_cast(&p2), sizeof(p2));
cout binFile.close();
}
return 0;
}
注意:使用 reinterpret_cast 将结构体指针转为 char*,以便正确写入原始字节。
检查状态与关闭文件
文件操作后应检查状态并及时关闭:
is_open():判断文件是否成功打开good():一切正常fail():操作失败(如格式错误)eof():到达文件末尾bad():发生严重错误(如写入失败)
使用 close() 显式关闭文件,释放资源。
基本上就这些。掌握 fstream 的基本用法后,可以灵活处理配置文件、日志记录、数据存储等常见任务。关键是选择合适的打开模式,并注意错误处理。
以上就是c++++怎么使用fstream进行文件操作_c++文件输入输出流操作详解的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1480313.html
微信扫一扫
支付宝扫一扫