首页 > 后端开发 > C++ > 正文

c++中fstream如何操作文件_c++ fstream文件流操作方法

裘德小鎮的故事
发布: 2025-09-23 14:25:01
原创
1116人浏览过
fstream是C++中用于文件读写的核心类,通过<fstream>头文件引入,包含ifstream、ofstream和fstream三个类;支持文本和二进制文件操作,常用open()函数结合ios::in、ios::out、ios::app等模式打开文件;可通过<<和>>进行文本读写,binary模式下使用read()和write()处理二进制数据;需注意读写指针的控制(seekg、seekp)及状态检查(eof、fail),切换读写方向时应调用clear()或定位函数;正确选择模式并处理细节可实现高效文件操作。

c++中fstream如何操作文件_c++ fstream文件流操作方法

在C++中,fstream 是用于文件操作的核心类,它结合了输入和输出功能,能对文件进行读、写或同时读写。通过 <fstream> 头文件引入,主要包含三个类:

  • ifstream:从文件读取数据(输入流)
  • ofstream:向文件写入数据(输出流)
  • fstream:既能读又能写

下面介绍 fstream 的常用操作方法。

打开文件

使用 open() 成员函数或构造函数打开文件。需指定文件路径和打开模式。

常用打开模式:

立即学习C++免费学习笔记(深入)”;

  • ios::in - 读取
  • ios::out - 写入(默认会清空内容)
  • ios::app - 追加模式,写入内容添加到文件末尾
  • ios::ate - 打开后立即定位到文件末尾
  • ios::binary - 以二进制方式操作
  • ios::trunc - 若文件存在则清空内容(默认于 out 模式)

示例:打开文件

#include <fstream>
std::fstream file;
file.open("data.txt", std::ios::in | std::ios::out); // 可读可写
if (!file.is_open()) {
    std::cout << "无法打开文件!\n";
}
登录后复制

读写文本文件

打开文件后,可用类似 cin/cout 的操作符进行读写。

写入文本:

file << "姓名:张三\n";
file << "年龄:25\n";
登录后复制

读取文本:

法语写作助手
法语写作助手

法语助手旗下的AI智能写作平台,支持语法、拼写自动纠错,一键改写、润色你的法语作文。

法语写作助手 31
查看详情 法语写作助手
std::string line;
while (std::getline(file, line)) {
    std::cout << line << std::endl;
}
登录后复制

注意:如果同时读写,中间切换方向时应调用 seekg()seekp(),或使用 clear() 清除状态。

二进制文件操作

以二进制方式读写结构体或原始数据。

写入二进制数据:

struct Person {
    char name[20];
    int age;
} p = {"李四", 30};
<p>std::fstream binFile("data.bin", std::ios::out | std::ios::binary);
binFile.write(reinterpret_cast<char*>(&p), sizeof(p));
binFile.close();</p>
登录后复制

读取二进制数据:

std::fstream binFile("data.bin", std::ios::in | std::ios::binary);
Person p2;
binFile.read(reinterpret_cast<char*>(&p2), sizeof(p2));
std::cout << "姓名:" << p2.name << ", 年龄:" << p2.age << std::endl;
binFile.close();
登录后复制

文件指针与状态控制

可控制读写位置和检查流状态。

  • seekg(pos):设置读取位置
  • seekp(pos):设置写入位置
  • tellg():获取当前读取位置
  • tellp():获取当前写入位置
  • eof():判断是否到达文件末尾
  • fail():判断操作是否失败

示例:跳过前几字节再读

file.seekg(10); // 跳过前10字节
char buffer[100];
file.read(buffer, 50);
登录后复制

基本上就这些。掌握 fstream 的打开、读写、模式选择和状态检查,就能灵活处理大多数文件操作需求。关键是根据用途选择合适模式,注意文本与二进制的区别,避免读写冲突。不复杂但容易忽略细节。

以上就是c++++中fstream如何操作文件_c++ fstream文件流操作方法的详细内容,更多请关注php中文网其它相关文章!

c++速学教程(入门到精通)
c++速学教程(入门到精通)

c++怎么学习?c++怎么入门?c++在哪学?c++怎么学才快?不用担心,这里为大家提供了c++速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号