gpt4 book ai didi

c++ - Windows 和 Linux 之间的行尾分隔符转换

转载 作者:太空宇宙 更新时间:2023-11-04 09:06:18 25 4
gpt4 key购买 nike

我需要在 Debian Linux 上编译的 C++ 程序中读取在 Windows 中创建的 txt 文件。不幸的是,我对行尾定界符有疑问。我知道行尾指示符在 Linux 和 Windows 中是不同的。因此,在 Linux 中,我的 C++ 程序读取类似“correct_line^M”的内容。

我的问题:如何在 Linux 中正确读取在 Windows 中创建的文件?我是否需要手动将其转换为 Linux 表示形式(我希望避免这种情况)?

谢谢。

最佳答案

你必须自己做。 (恕我直言,一个好的图书馆可以做到如果以文本模式打开,则自动在 filebuf 中。但是图书馆我很熟悉不要。)

这可能无关紧要,具体取决于您在做什么。任何面向线input 无论如何都应该接受尾随空格,以及额外的 0x0D字符是空白。所以除了编辑,通常不会

如果你想在写入文件时抑制多余的 0x0D(在Windows),只需以二进制模式打开文件。就此而言,当文件的可移植性是一个问题,打开以二进制模式文件,并写入协议(protocol)的任何约定需要。 (使用两个字符序列 0x0D,0x0A 或多或少标准,并且是大多数 Internet 协议(protocol)指定的内容。)阅读时,再次,以二进制模式打开,并编写代码以接受任何通常的约定:两个字符序列 0x0D、0x0A 或单个 0x0D 或单个 0x0A。 (这可以通过过滤来完成流缓冲区。)

关于c++ - Windows 和 Linux 之间的行尾分隔符转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10650658/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com