我开发了一个命令行工具,可以将某种二进制数据转换为csv文本。 现在我要将它移植到Windows上,我仍然不确定是否应该专门为Windows编写“\ r \ n”换行符,或者像往常一样只写'\ n'。
我想在所有平台上拥有完全相同的输出。但我不是Windows的人,也不知道可能出现的任何问题。 您是否认为Windows上通常的数据挖掘者可以在没有'\ r'的情况下生存?
例如我尝试过“excel”,“cmd”和“more” - 没有注意到没有'\ r'的任何问题。 Notpad错过了,但谁在乎呢?
铜, 鲁迪
答案 0 :(得分:3)
好吧,我决定不再输出windows line feed了,即使在stderr和stdout上也是如此。 BTW我注意到在O_BINARY模式下写入的速度比默认O_TEXT快两倍。
这就是我现在正在做的事情:
#ifdef _WIN32
#include <fcntl.h>
#include <io.h>
#endif
...
#ifdef _WIN32
/* never write CRLF line feeds */
_setmode(_fileno(stderr),_O_BINARY);
_setmode(_fileno(stdout),_O_BINARY);
#endif