|
阅读:23回复:0
关于Win和Linux的文本处理细节
设想你正在使用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内置的文本编辑器,应该就没有这么坑爹的特性 |
|