用fstream读写TXT文件需选对流类型并检查打开状态:ifstream逐行读取用getline(),ofstream写入可覆盖或追加,fstream同时读写需指定模式组合并注意seekg/seekp定位。
用 fstream 读写 TXT 文件,核心是选对流类型(ifstream、ofstream 或 fstream),正确打开文件,并检查是否成功。
推荐用 std::ifstream,配合 std::getline() 逐行读取最稳妥,避免空格截断;若用 >> 运算符则按空白符分隔(空格、制表、换行都会切开)。
示例:读取并打印每行内容
#include#include #include int main() { std::ifstream fin("data.txt"); if (!fin.is_open()) { std::cerr << "无法打开 data.txt\n"; return 1; } std::string line; while (std::getline(fin, line)) { std::cout << line << '\n'; } fin.close(); return 0; }
用 std::ofstream。默认是覆盖写入(std::ios::out);要追加,显式加上 std::ios::app 模式。
ofstream("file.txt")
ofstream("file.txt", std::ios::app)
!fout 或 fout.fail() 判断示例:向文件追加两行
#include
#include int main() { std::ofstream fout("log.txt", std::ios::app); if (!fout) { std::cerr << "无法打开 log.txt\n"; return 1; } fout << "操作完成\n"; fout << "时间:2024-06-15\n"; fout.close(); return 0; }
用 std::fstream,但必须指定模式组合,例如:
std::fstream file("data.txt", std::ios::in | std::ios::out); —— 可读可写,文件必须存在std::fstream file("data.txt", std::ios::in | std::ios::out | std::ios::trunc); —— 读写+清空原内容std::fstream file("data.txt", std::ios::in | std::ios::out | std::ios::ate); —— 打开后定位到末尾注意:读写切换时需调用 seekg()(读位置)或 seekp()(写位置),否则行为未定义。
is_open() 或隐式转换为 bool_setmode(_fileno(stdin), _O_U16TEXT)(Windows 特有)或改用绝对路径测试.close() 也行,对象析构时会自动关闭,但显式关闭更清晰可控fin >> x 遇到非数字字符会停止,且留下剩余字符在缓冲区,后续 getline() 可能读到空行——可用 fin.ignore() 清理
# windows
# 编码
# app
# ai
# c++
# ios
# win
# stream
# 常见问题
# 隐式转换
# 运算符
# bool
# ofstream
# ifstream
# fstream
# 对象
# 文本文件
# 无法打开
# 转换为
# 也行
# 读到
# 两行
# 清空
# 自动关闭
# 时需
# 更清晰
相关栏目:
【
Google疑问12 】
【
Facebook疑问10 】
【
网络优化76771 】
【
技术知识130152 】
【
IDC云计算60162 】
【
营销推广131313 】
【
AI优化88182 】
【
百度推广37138 】
【
网站推荐60173 】
【
精选阅读31334 】
相关推荐:
php打包exe后无法读取环境变量_变量配置方法【教程】
Mac如何整理桌面文件_Mac使用堆栈功能一键整理
c++ reinterpret_cast怎么用 c++最危险的类型转换【详解】
php订单日志怎么导出excel_php导出订单日志到表格教程【教程】
Python 中将 ISO 8601 时间戳转换为日期并计算日期差值的完整教程
如何使用Golang开发简单的聊天室消息存储_Golang WebSocket数据持久化方法
VSC怎样在VSC中调试PHPAPI_接口调试技巧【详解】
c++ namespace命名空间用法_c++避免命名冲突
php中$this和::能混用吗_对象与静态作用域冲突解决【方法】
Win11怎么关闭自动更新 Win11永久关闭系统更新的有效方法【技巧】
Go 语言标准库为何不提供泛型 Contains 方法:设计哲学与类型系统约束
如何在Golang中验证模块完整性_Golanggo.sum校验与安全实践
C++如何编写函数模板?(泛型编程入门)
C++如何使用std::transform批量处理容器元素?(代码示例)
Win11怎么关闭系统提示音_Windows11声音方案设为无声教程
零基础学会Python自动化办公_高效处理Excel与PDF文档
如何优化Golang Web性能_Golang HTTP服务器性能提升方法
如何在Golang中使用container/heap实现堆_Golang container/heap最小堆方法
php本地部署后session无法保存_session存储路径与权限设置技巧【技巧】
Win11怎么禁用键盘自带键盘_Win11笔记本禁用内置键盘方法【教程】
Win10系统更新错误0x80240034怎么办 Win10更新错误解决法【方法】
win11 OneDrive怎么彻底关闭 Win11禁用并卸载OneDrive教程【分享】
如何解决Windows字体显示模糊的问题?(ClearType设置)
如何高效获取循环末次生成的 NumPy 数组最后一个元素(无需额外循环)
Win11怎么自动隐藏任务栏_Win11全屏显示设置【美化】
php中::能访问全局变量吗_全局作用域与类作用域区分【操作】
如何在Golang中定义接口_抽象方法和多态实现
php转exe用什么工具打包快_高效打包软件推荐【汇总】
c++ try_emplace用法_c++ map高效插入数据
Django 测试数据库表缺失与字段未创建问题的完整解决方案
如何在Golang中处理模块冲突_解决依赖版本不兼容问题
Win11怎么卸载Photos应用_Win11卸载Photos应用方法【教程】
Win11怎么更改电脑密码_Windows 11修改本地账户密码【步骤】
MAC怎么使用表情符号面板_MAC Emoji快捷键调用与符号查找【方法】
C++如何使用std::optional?(处理可选值)
c++ atoi和atof函数用法_c++字符数组转数字
如何在 Go 项目开发中正确处理本地包导入与远程模块路径的一致性问题
如何在 Python 测试中动态配置 @backoff 装饰器的重试次数
c++的static关键字有什么用 静态变量和静态函数的应用场景【教程】
Win11怎么解压RAR文件 Win11自带解压功能使用方法
Win11怎么关闭粘滞键_彻底禁用Windows 11连按Shift粘滞键【步骤】
Python对象比较与排序_集合使用说明【指导】
微信短链接怎么还原php_用浏览器开发者工具抓包获取【方法】
c# F# 的 MailboxProcessor 和 C# 的 Actor 模型
Win10如何优化内存使用_Win10内存优化技巧【攻略】
php删除数据怎么清空表_truncate与delete区别及用法【汇总】
如何使用Golang处理静态文件缓存_提高页面加载速度
Python安全爬虫设计_IP代理池与验证码识别策略解析
Windows7怎么找回经典开始菜单_Windows7经典菜单找回步骤【方法】
PythonWeb前后端整合项目教程_FastAPIReact完整实例
2025-12-25
致胜网络推广营销网专注海外推广十年,是谷歌推广.Facebook广告全球合作伙伴,我们精英化的技术团队为企业提供谷歌海外推广+外贸网站建设+网站维护运营+Google SEO优化+社交营销为您提供一站式海外营销服务。