1

我有一个使用 wine 在 Linux 中运行的 C++ 代码。我认为这实际上是问题的一部分。

通常,当我在本机 Linux C++ 程序中执行此类操作时:

ofstream fout;
fout.open("myfile.txt")
fout<<"blah blah"<<endl;
fout<<"blah blah 2"<<endl;
fout.close;

该文件是标准的 ASCII 文本。但是,在我在 wine 下运行的代码中,myfile.txt 现在是带有 CRLF 行终止符的 ASCII 文本。

这是一个问题,因为如果我想使用在同一台机器上运行的本机 Linux C++ 代码读取文件,那么 CRLF 行终止符确实会搞乱很多文件处理和解析。

有没有办法让代码在 wine 下运行以输出没有 CRLF 行终止符的文件,并且我可以在同一台机器上使用本机 Linux C++ 代码读取它?

4

1 回答 1

2

ios::binary您可以在模式下打开文件。严格来说,这并不意味着它是一个二进制文件[任何其他文件都是“文本”,因为所有文件都是二进制文件]。在这种情况下,二进制只是意味着“不要通过将字符解释为特殊字符、添加或删除任何字符等来处理文件中的内容。

或者当您将文件复制到 Linux 时,使用dos2unix myfile.txt将其从“dos”(和 Windows)格式转换为“unix”样式的文本文件。

于 2013-05-30T19:30:19.343 回答