c++ - 在开始而不是结束时使用 '\n' 有什么缺点吗?

标签 c++ newline cout

大多数情况下,我看到人们在字符串末尾使用 \n 但将 \n 放在开头对我来说更有意义,因为现在我不必保留跟踪接下来要打印的内容。 例如-

std::cout<<"Some string\n";  //syntax 1

假设在此之后控件转到我不需要换行的其他功能,但使用此语法强制插入换行,除非我可以提前考虑并跟踪是否需要打印下一行换行与否。

std::cout<<"\nSome string";  //syntax 2

但是通过使用第二种语法,我可以避免这样的事情,我只需要担心当前的语句。

问题 - 使用这两种语法中的任何一种只是个人偏好,还是第二种语法比第一种语法有任何缺点?

最佳答案

这根本不是“个人偏好”——这两种解决方案在语义上是不同的。当您的应用程序需要时,您可以使用其中一种。

一个关键点是在许多平台上 \n 会导致任何缓冲的文本被刷新并被输出。如果您延迟 \n,您可能无法立即看到输出,直到下一个 \n 可能不是确定性或及时性。

关于c++ - 在开始而不是结束时使用 '\n' 有什么缺点吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67539060/

相关文章:

java - C++ 和 Java OOP 访问控制冲突 : access peer object's private fields

c++ - 为什么启用优化后 sin/cos 会变慢?

python - 将随机数写入Python文件并使用换行符连接

c++ - 尝试在 C 中打印字符串变量时出现编译器错误

c++ - 使用 "<<"时使用 "+"或 "cout"将字符串放在一起

c++ - 常见的 Windows 编译器上有哪些 std::locale 名称?

c++ - C++:在成员变量的指针传递到其他地方的情况下,如何使编译器优化内存访问

在多行中捕获的正则表达式适用于 regex101.com 但不适用于 PowerShell

javascript - 包含换行符的 PHP 字符串会导致打印 Javascript 时出现问题

c++ - 如何使用 cout 以完全精确的方式打印 double 值?