[英]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.