簡體   English   中英

C ++ ofstream,無需CRLF即可打印

[英]C++ ofstream, printing without CRLF

我有一個C ++代碼,我正在用wine在Linux中運行。 我認為這實際上是問題的一部分。

通常,當我在本地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 ++代碼讀取它的方式?

您可以在ios::binary模式下打開文件。 嚴格來講,這並不意味着它是一個二進制文件(比所有其他文件都是“文本”,因為所有文件都是二進制文件)。 在這種情況下,二進制僅表示“不要通過將字符解釋為特殊字符,添加或刪除任何字符等來弄亂文件中的內容。

或者,當您將文件復制到Linux時,請使用dos2unix myfile.txt將其從“ dos”(和Windows)格式轉換為“ unix”樣式的文本文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM