我正试图在游戏中做一个新行,但它不起作用。一切都写在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";
一切都写在同一条线上,没有新线......我错过了什么?
答案 0 :(得分:2)
如果您正在使用cygwin的g ++,had some issues converting the "\n" to windows-style CRLF under some settings,我尝试了一个简单版本的代码片段,它运行正常。尝试在另一个文本编辑器中打开,看看问题是否仍然存在。
答案 1 :(得分:0)
可能。您正在阅读该文件的不同副本,而不是您的程序正在写入的副本。删除该文件,然后运行您的程序。
答案 2 :(得分: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'字符。
答案 3 :(得分:0)
使用
output.open("OUTPUT.TXT", ios::out);
提醒您ios::binary
无法使用。