您应该以“文本模式”(即“不使用二进制”)打开文件,并且'\n'无论本机文件是什么,换行符始终为 。C 库将'\n'在适当的时候将任何表示换行符的本机字符翻译成[即读/写文本文件]。请注意,这也意味着您不能依赖“计算读取的字符数并使用它来“返回此位置”。
如果文件是二进制文件,那么换行符无论如何都不是换行符。
除非你计划在非常古老的系统上运行,并且你真的想这样做,否则我会这样做:
#ifdef __WINDOWS__ // Or something like that
#define END_LINE "\r\n"
#else
#define END_LINE "\n"
#endif
Run Code Online (Sandbox Code Playgroud)
这不适用于 MacOS X 之前的 MacOS,但肯定没有人再使用 MacOS X 之前的硬件了吗?
不,因为它\n无处不在。当您将其写入文本文件时,它会扩展为正确的换行符。