“\ 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
被打破,则换行符将不刷新任何东西。
临摹微笑
萧十郎
相关分类