如何解决C ++换行
我正在尝试在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时会遇到一些问题,我尝试了您的代码段的简单版本,它可以正常工作。尝试在另一个文本编辑器中打开,看看问题是否仍然存在。
, 在这种情况下,我发现最好用十六进制编辑器而不是文本编辑器查看文件,因为文本编辑器可以拥有自己的文本呈现方式,这对于查找讨厌的,不可打印的字符也很有用。会让你绊倒。
您没有说要使用什么平台,但是如果您使用的是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 \'字符。
, 采用
output.open(\"OUTPUT.TXT\",ios::out);
提醒您ѭ6不能使用。
, 大概。您正在读取的文件副本与您的程序正在写入的副本不同。删除文件,然后运行程序。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。