2011-06-15 99 views
2

我想在一個流中做一個新行,但它不起作用。一切都寫在同一行中OUTPUT.TXTC++ Ofstream一個新行

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"; 

一切都在同一個寫線,沒有新的線......我是遺漏了什麼?

+0

在Windows 7上,使用notepad.exe來讀取輸出文件 – 2011-06-15 02:19:14

回答

0

也許吧。您正在讀取與您的程序寫入的文件不同的副本。刪除文件,然後運行你的程序。

+0

那就是爲什麼我這樣做...這不是問題,但無論如何感謝 – 2011-06-15 02:21:21

0

在這種情況下,我發現最好在十六進制編輯器中查看文件,而不是文本編輯器,它可以擁有關於如何呈現文本的自己的想法,它也可以很好地找到討厭的非打印字符那可能會讓你失望。

你沒有說你正在使用什麼平臺,但是如果你在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」字符。

0

使用

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

提醒你ios::binary不能使用。