文件IO:文件流
核心要点速览 本质区别:文本基于字符编码(含格式 / 编码转换),二进制基于原始字节流(无任何转换); 差异:可读性(文本可读 / 二进制不可读)、效率(二进制 > 文本)、适用场景(文本→日志 / 配置,二进制→图片 / 结构体); 操作:文本用>>/<</getline(),二进制用read()/write()+ios::binary; 补充:本质区别对比、结构体二进制读写禁忌、场景选择依据、跨平台兼容原理。 一、本质区别:从存储到操作的差异文本处理和二进制处理的所有差异,根源在于数据存储形式和读写时是否进行转换 对比维度 文本处理(Text Mode) 二进制处理(Binary Mode) 存储形式 以字符编码(ASCII/UTF-8 等)存储,数据需转换为字符编码(如int 123→字符串 “123”) 以原始二进制存储,直接复刻内存字节布局(如int 123→0x7B 0x00 0x00 0x00) 读写转换 自动处理换行符(Windows:...
文件IO:文件操作
核心要点速览 文本文件:>>/<<、getline()读写,自动转换换行符,适配人类可读数据(日志、配置)。 二进制文件:read()/write()操作原始字节流,适配非文本数据(图片、结构体),效率更高。 文件指针:seekg()/seekp()定位、tellg()/tellp()获取位置,支持随机访问。 关键:模式区分、读写混用问题、字节对齐、缓冲区刷新、跨平台兼容核心点。 一、文本文件:读写逻辑与易错文本文件以字符编码(ASCII/UTF-8)存储,读写时自动处理换行符转换(如 Windows 下\n→\r\n),核心关注 “读写一致性” 与 “缓冲区问题”。 1. 读写方法(1)写入操作(ofstream)12345ofstream ofs("text.txt", ios::out | ios::app); // 追加模式if (!ofs) return -1; // 检查打开失败ofs << "姓名:Tom" << endl; ...
文件IO:二进制与文本处理
核心要点速览 区别:文本处理基于字符编码(有格式转换),二进制处理基于原始字节流(无转换)。 差异:文本可人类直接阅读,二进制不可;文本有换行符 / 编码转换,二进制无;文本适合日志 / 配置,二进制适合图片 / 结构体。 操作:文本用>>/<</getline(),二进制用read()/write()+ios::binary。 一、区别 维度 文本处理(Text Mode) 二进制处理(Binary Mode) 存储形式 字符编码(如 ASCII、UTF-8),每个字符对应编码值。 数据原始二进制(如 int 的 4 字节、结构体的连续字节)。 格式转换 自动处理换行符(Windows:\n→\r\n;Linux:不转换),部分编码可能转换(如宽字符)。 无任何转换,字节数据原样读写(\n就是 0x0A,\r就是 0x0D)。 可读性 人类可直接阅读(如记事本打开txt文件)。 人类不可读(打开为乱码,需程序解析)。 效率 读写需编码 / 解码,效率较低。 直...
共白头
共白头 忽有故人心上过,回首山河已入冬。 他朝若是同淋雪,此生也算共白头。 白头若是雪可替,世间何来伤心人。 此时若有君在侧,何须淋雪作白头。

