2013-05-30 35 views
1

我有一个C++代码我在Linux上运行的酒。我认为这实际上是问题的一部分。C++的ofstream,打印而不CRLF

通常,当我做这样的事情在一个本地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行结束符确实会搞乱大量的文件处理和解析。

有没有办法让酒下运行的输出文件,无需CRLF行终止,并在时尚,我可以使用同一台机器上的本地Linux C++代码,阅读它的代码?

回答

2

你可以在ios::binary模式打开该文件。严格来说,这并不意味着它是一个二进制文件[除了任何其他文件都是“文本”,因为所有文件都是二进制文件)。在这种情况下二进制只是意味着“不要与文件内的东西混淆,通过解释字符为特殊,添加或删除任何字符等。”

或者当您将文件复制到Linux时,使用dos2unix myfile.txt将其转换从

“杜斯”(和Windows)格式,以“UNIX”样式的文本文件。