panzerQ
光坂国中生
光坂国中生
  • 注册日期2026-03-15
  • 最后登录2026-03-26
  • 生日2004-1-1
  • 光玉10颗
阅读:23回复:0

关于Win和Linux的文本处理细节

楼主#
更多 发布于:2026-03-26 20:58
设想你正在使用C语言编写一个Parser,
下面是你正在编写的语句:


FILE* fp = fopen(file.c_str(), "r");
const long bufsize = ftell(fp);
const long read_bytes = fread(buf.data(), sizeof(char), bufsize, fp);


然后你做一个判断:

if (read_bytes == bufsize) {do A;} else {do B;}

你可能会发现Win和Linux环境下的测试结果不一样,
尤其是对于那些用Win的记事本敲出来的txt文件。

此时把
fopen 的模式从 r 调整为 rb
可能会有帮助...主要原因在于,Win和Linux的换行符标准不一样。

VsCode内置的文本编辑器,应该就没有这么坑爹的特性
喜欢0 评分0
游客

返回顶部