为了账号安全,请及时绑定邮箱和手机立即绑定

“\ n”或“\ n”或std :: endl到std :: cout?

“\ n”或“\ n”或std :: endl到std :: cout?

C++
神不在的星期二 2019-08-12 18:17:16
“\ n”或“\ n”或std :: endl到std :: cout?自从我std::endl在写作时停止使用结束行std::cout并开始使用以来已经很多年了"\n"。但现在我开始看到更多的代码片段'\n',我开始想知道什么是最好的。除了显而易见的是一个字符串,另一个字符,使用它有任何好处:std::cout << variable << '\n';在此:std::cout << variable << "\n";迟到:当我问这个问题时,我似乎认为换行'\n'刷新了缓冲区。现在我知道这取决于。默认情况下std::cin,绑定到旧的C stdin FILE*流,并std::cout绑定到stdout。新线上的冲洗来自这种搭售。默认情况下stdout,如果连接到终端,则进行行缓冲。这意味着新行将刷新其缓冲区。因此,当使用打印换行符std::cout时,将导致stdout刷新。如果stdout未连接到的终端(例如,输出已经被重定向或用管道输送),或者如果之间的联系std::cout和stdout被打破,则换行符将不刷新任何东西。
查看完整描述

3 回答

?
临摹微笑

TA贡献1982条经验 获得超2个赞

他们做不同的事情。"\n"输出换行符(在适当的平台特定表示中,因此它"\r\n"在Windows上生成),但std::endl执行相同操作并刷新流。通常,您不需要立即刷新流,这只会让您的性能降低,因此大多数情况下都没有理由使用std::endl


查看完整回答
反对 回复 2019-08-12
?
萧十郎

TA贡献1815条经验 获得超12个赞

没有最好的。你用你需要的东西:

  • '\ n' - 结束这条线

  • “一些字符串\ n” - 一些字符串后面的行结束

  • std::endl - 结束线路并冲洗流


查看完整回答
反对 回复 2019-08-12
  • 3 回答
  • 0 关注
  • 388 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信