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

End of the line delimiter conversion between Windows and Linux

本文关键字:分隔符 转换 Linux 之间 Windows      更新时间:2023-10-16

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

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

谢谢。

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

根据你在做什么,这可能无关紧要。 任何方向的线无论如何,输入都应接受尾随空格,以及额外的0x0D字符为空白。 所以除了编辑,它通常不会事。

如果要在写入文件时禁止显示额外的0x0D(在Windows(,只需以二进制模式打开文件即可。 就此而言,当文件的可移植性是一个问题,打开二进制模式下的文件,并编写协议的任何约定需要。 (使用两个字符序列0x0D,0x0A或多或少标准,并且是大多数互联网协议指定的。 阅读时,再次,以二进制模式打开,并编写代码以接受任何通常约定:两个字符序列0x0D、0x0A或单个0x0D或单个0x0A。 (这可以通过过滤来完成流布夫。

你可以运行dos2unix .它会转换您的文件。