可移植性,csv文件应该在Windows上使用CRLF换行符

时间:2011-08-24 23:20:46

标签: windows csv portability newline

我开发了一个命令行工具,可以将某种二进制数据转换为csv文本。 现在我要将它移植到Windows上,我仍然不确定是否应该专门为Windows编写“\ r \ n”换行符,或者像往常一样只写'\ n'。

我想在所有平台上拥有完全相同的输出。但我不是Windows的人,也不知道可能出现的任何问题。 您是否认为Windows上通常的数据挖掘者可以在没有'\ r'的情况下生存?

例如我尝试过“excel”,“cmd”和“more” - 没有注意到没有'\ r'的任何问题。 Notpad错过了,但谁在乎呢?

铜, 鲁迪

1 个答案:

答案 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