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

发布于 2024-12-01 10:09:11 字数 292 浏览 1 评论 0原文

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

我希望在所有平台上都有完全相同的输出。但我不是 Windows 用户,不知道可能会出现什么问题。 您认为 Windows 上的普通数据挖掘器可以在没有“\r”的情况下生存吗?

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

铜, 鲁迪

I've developed a command line tool which converts some kind of binary data to csv text.
Now I'm going to port it to Windows and I'am still not sure if I should write "\r\n" line feeds specially for Windows or just '\n' as usual.

I'd like to have exactly the same output on all platforms. But I'am not a Windows guy and don't know any problems that may occur.
Do you think the usual data miner on Windows could live without that '\r'?

For example I've tried out "excel", "cmd" and "more" - didn't noticed any problems without '\r'. Notpad missed, but who cares?

cu,
Rudi

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

吻泪 2024-12-08 10:09:11

好吧,我决定不再输出 Windows 换行符,即使在 stderr 和 stdout 上也是如此。
顺便说一句,我注意到以 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

Ok, I decided to never output windows line feeds anymore even on stderr and stdout.
BTW I've noticed that writing in O_BINARY mode is about two times faster than default O_TEXT.

This is what I'am doing now:

#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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文