2013-05-30 71 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」樣式的文本文件。