c++如何读取和写入文件_c++ fstream文件流操作详解【实例】

千晨酱_8501

千晨酱_8501

2026-01-02

165人浏览

原创

C++文件读写核心是fstream流类,按需选用ifstream/ofstream/fstream,打开后检查is_open(),支持getline逐行读、>>分词读、read/write二进制操作,写入默认覆盖,追加需ios::app,二进制须加ios::binary模式。

c++如何读取和写入文件_c++ fstream文件流操作详解【实例】

C++ 读取和写入文件,核心就是用 fstream(文件流),它把文件当“流”来处理,和 cin/cout 用法很像,学起来不难。

打开文件:用 ifstream、ofstream 或 fstream

根据操作类型选对流类:

  • ifstream:只读文件(input file stream)
  • ofstream:只写文件(output file stream)
  • fstream:可读可写(更灵活,但注意打开模式)

打开时推荐用构造函数或 open(),并检查是否成功:

示例:安全打开一个文本文件读取
#include <fstream>
#include <iostream>
#include <string>

std::ifstream fin("data.txt");
if (!fin.is_open()) {
    std::cerr <h3>读取文件:按行、按词、按<a style="color:#f60; text-decoration:underline;" title="字节" href="https://m.php.cn/zt/16298.html" target="_blank">字节</a>都行</h3>
<p>常用读取方式有三种,看需求选:</p><div class="aritcle_card flexRow artxards">
											<div class="artcardd flexRow">
												<a class="aritcle_card_img" rel="nofollow" href="/xiazai/skill10691" title="Livestream Script Generator"><img
														src="https://img.php.cn/upload/skill/001/246/273/6adaf20e695c2374.jpg" alt="Livestream Script Generator" onerror="this.onerror='';this.src='/static/lhimages/moren/morentu.png'" ></a>
												<div class="aritcle_card_info flexColumn">
													<a rel="nofollow" href="/xiazai/skill10691" title="Livestream Script Generator" class="overflowclass">Livestream Script Generator</a>
													<p class="overflowclass">直播带货脚本:话术、节奏、互动、促单。适用于主播、电商运营、MCN机构。</p>
												</div>
												<a rel="nofollow" href="/xiazai/skill10691" title="Livestream Script Generator" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span>
												</a>
											</div>
										</div>
<ul>
<li>
<code>getline(fin, str)</code>:一行一行读(推荐,能读空格)</li>
  <li>
<code>fin >> str</code>:按空白符分隔读(跳过空格/换行,类似 cin)</li>
  <li>
<code>fin.get(ch)</code> 或 <code>fin.read(buf, n)</code>:逐字符或批量读字节(适合二进制)</li>
</ul>
<font color="#888">示例:逐行读取并打印</font><pre class="brush:php;toolbar:false;">std::string line;
while (std::getline(fin, line)) {
    std::cout <h3>写入文件:输出流操作,和 cout 几乎一样</h3><p>用 <code>ofstream</code> 打开后,直接用 <code> 写入即可:</code></p>
  • 默认是覆盖写入(std::ofstream fout("out.txt"))
  • 想追加写入,加 std::ios::app 模式:ofstream fout("out.txt", std::ios::app)
  • 写入失败可用 fout.fail() 检查
示例:写入多行数据
std::ofstream fout("result.txt");
fout <h3>二进制文件操作:加 ios::binary 模式</h3><p>读写图片、音频、结构体等原始数据,必须用二进制模式,避免换行符被自动转换:</p>
  • 打开时加上 std::ios::binary
  • 用 read() / write() 配合 reinterpret_cast 处理内存块
  • 注意结构体可能有内存对齐,跨平台慎用
示例:保存一个 int 到二进制文件
int val = 12345;
std::ofstream binout("data.bin", std::ios::binary);
binout.write(reinterpret_cast<const char>(&val), sizeof(val));
binout.close();
</const>

基本上就这些。关键是选对流类型、开对模式、读写后检查状态、用完记得 close —— 不复杂但容易忽略。

C++免费学习笔记(深入):立即使用
在学习笔记中,你将探索 C++ 的入门与实战技巧!

相关文章

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

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

下载

相关标签:

字节 c++ stream

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
golang结构体相关大全
golang结构体相关大全

本专题整合了golang结构体相关大全,想了解更多内容,请阅读专题下面的文章。

2025.06.09

5074

18

golang结构体方法
golang结构体方法

本专题整合了golang结构体相关内容,请阅读专题下面的文章了解更多。

2025.07.04

5251

25

string转int
string转int

在编程中,我们经常会遇到需要将字符串(str)转换为整数(int)的情况。这可能是因为我们需要对字符串进行数值计算,或者需要将用户输入的字符串转换为整数进行处理。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.08.02

6939

3

int占多少字节
int占多少字节

int占4个字节,意味着一个int变量可以存储范围在-2,147,483,648到2,147,483,647之间的整数值,在某些情况下也可能是2个字节或8个字节,int是一种常用的数据类型,用于表示整数,需要根据具体情况选择合适的数据类型,以确保程序的正确性和性能。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.08.29

3325

6

c++怎么把double转成int
c++怎么把double转成int

本专题整合了 c++ double相关教程,阅读专题下面的文章了解更多详细内容。

2025.08.29

4348

10

C++中int的含义
C++中int的含义

本专题整合了C++中int相关内容,阅读专题下面的文章了解更多详细内容。

2025.08.29

2945

10

点击input框没有光标怎么办
点击input框没有光标怎么办

点击input框没有光标的解决办法:1、确认输入框焦点;2、清除浏览器缓存;3、更新浏览器;4、使用JavaScript;5、检查硬件设备;6、检查输入框属性;7、调试JavaScript代码;8、检查页面其他元素;9、考虑浏览器兼容性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.11.24

894

4

Vite 项目如何打包和部署
Vite 项目如何打包和部署

Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。

2026.10.28

80

16

Vite 如何搭配 Vue.js
Vite 如何搭配 Vue.js

Vite搭配Vue.js专题汇集创建Vue 3项目、配置开发环境、路径别名、Vue插件、代理、多环境构建与调试的已审核文章,帮助读者完成从初始化到日常开发的配置。

2026.10.28

60

15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
uni-app从入门到实战教程
uni-app从入门到实战教程

共0课时 | 0人学习

uni-app x harmony开发指南
uni-app x harmony开发指南

共0课时 | 0人学习

uni-app鸿蒙运行和发行
uni-app鸿蒙运行和发行

共0课时 | 0人学习