簡體   English   中英

C++ Ofstream新線

[英]C++ Ofstream a new line

我正在嘗試在 ofstream 中創建一個新行,但它不起作用。 一切都寫在 OUTPUT.txt 的同一行

std::ofstream output;
output.open("OUTPUT.TXT");
output << "sometext" << "\r\n" << "sometext" << "\r\n" << "sometext";
output.close();

我也試過

output << "sometext" << std::endl << "sometext" << std::endl << "sometext";

output << "sometext" << "\n" << "sometext" << "\n" << "sometext";

output << "sometext" << '\n' << "sometext" << '\n' << "sometext";

一切都寫在同一行,沒有新的行......我錯過了什么嗎?

如果您使用的是 cygwin 的 g++,在某些設置下將“\n”轉換為 windows 樣式的 CRLF 時會遇到一些問題,我嘗試了一個簡單版本的代碼段,它運行良好。 嘗試在另一個文本編輯器中打開,看看問題是否仍然存在。

利用

output.open("OUTPUT.TXT", ios::out);

提醒您,不能使用ios::binary

大概。 您正在讀取的文件副本與您的程序正在寫入的文件副本不同。 刪除該文件,然后運行您的程序。

在這種情況下,我發現最好在十六進制編輯器中查看文件,而不是在文本編輯器中查看文件向上。

你沒有說你正在使用什么平台,但如果你在 windows 我會推薦使用HxD

如果您在 Windows 上,您將看到如下內容:

Offset(h) 00       04       08       0C       10       14       18       1C

00000000  736F6D65 74657874 0D0A736F 6D657465 78740D0A 736F6D65 74657874 0D0A      sometext..sometext..sometext..

十六進制序列0D0A是上例中 Windows 上的\n字符。

暫無
暫無

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

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