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