好的,我计划创建一个文件来存储我将导入到程序中的数据。该程序将为 Linux、Windows 和可能的 Mac 编译。
现在我真正想知道的是,由于这些文件中的换行符,我是否需要这些数据文件略有不同,或者 stdin 对我所在的系统不挑剔?
这会不会有问题?如果是这样,克服这些问题的正确方法是什么?还有其他我可能忽略的问题吗?
最佳答案
如果程序不打算由用户阅读,只需确保以与输入相同的形式输出它。在这种情况下,使用二进制格式可能更容易。
无论如何,请确保将流设置为二进制,否则 Windows 可能会将文本流的\n 扩展为\r\n。
或者,对于供用户读取的文本文件,以与平台无关的方式克服此问题的最简单方法之一是贪婪地消耗所有相邻的\r 和\n 字符作为单行结尾,并且您不必担心如何输出它。
关于CR+LF 与 LF 和 CR 之间的 C++ stdin 和 stdout 转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16831882/