跳转到主内容
新派编程网 - 新潮编程理念,全新技术课堂!

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

C++文件读写核心是fstream流类,按需选用ifstream/ofstream/fstream,打开后检查is_open(),支持getline逐行读、>>分词读、read/write二进制操作,写入默认覆盖,追加需ios::app,二进制须加ios::binary模式。 C++ 读取和写入文件,核心就是用
fstream
(文件流),它把文件当“流”来处理,和
cin/cout
用法很像,学起来不难。 打开文件:用 if stream 、ofstream 或 fstream 根据操作类型选对流类:
ifstream
:只读文件(input file stream)
ofstream
:只写文件(output file stream)
fstream
:可读可写(更灵活,但注意打开模式) 打开时推荐用构造函数或
open()
,并检查是否成功: 示例:安全打开一个文本文件读取
#include #include #include std::ifstream fin("data.txt"); if (!fin.is_open()) { std::cerr << "无法打开文件!\n"; return -1; } // 后续读取... fin.close(); // 记得关闭
读取文件:按行、按词、按 字节 都行 常用读取方式有三种,看需求选: 立即学习 “ C++免费学习笔记(深入) ”; C函数速查手册(CHM版) C函数速查手册(CHM版) 下载
getline(fin, str)
:一行一行读(推荐,能读空格)
fin >> str
:按空白符分隔读(跳过空格/换行,类似 cin)
fin.get(ch)
或
fin.read(buf, n)
:逐字符或批量读字节(适合二进制) 示例:逐行读取并打印
std::string line; while (std::getline(fin, line)) { std::cout << line << "\n"; }
写入文件:输出流操作,和 cout 几乎一样 用
ofstream
打开后,直接用
<<
写入即可: 默认是覆盖写入(
std::ofstream fout("out.txt")
) 想追加写入,加
std::ios::app
模式:
ofstream fout("out.txt", std::ios::app)
写入失败可用
fout.fail()
检查 示例:写入多行数据
std::ofstream fout("result.txt"); fout << "姓名:张三\n"; fout << "分数:95\n"; fout << "状态:通过\n"; fout.close();
二进制文件操作:加 ios::binary 模式 读写图片、音频、结构体等原始数据,必须用二进制模式,避免换行符被自动转换: 打开时加上
std::ios::binary
用
read()
/
write()
配合
reinterpret_cast
处理内存块 注意结构体可能有内存对齐,跨平台慎用 示例:保存一个 int 到二进制文件
int val = 12345; std::ofstream binout("data.bin", std::ios::binary); binout.write(reinterpret_cast(&val), sizeof(val)); binout.close();
基本上就这些。关键是选对流类型、开对模式、读写后检查状态、用完记得 close —— 不复杂但容易忽略。

相关文章