我的程序向
作为一个有点牵强的例子,我的行看起来有点像这样:
我希望程序运行快速,我确信
现在,互联网上的一些人说,我可以这样做:
但这似乎不是一个好的解决方案,因为
因此,我想问,有没有一种方法可以禁用
编辑
进一步挖掘似乎表明,
cout
打印大量的短行。作为一个有点牵强的例子,我的行看起来有点像这样:
cout<<"The variable's value is: "<<variable<<endl;
我希望程序运行快速,我确信
endl
正在拖慢我的程序,因为每次使用它都会在cout
上启动缓冲区刷新。现在,互联网上的一些人说,我可以这样做:
cout<<"The variable's value is: "<<variable<<"\n";
但这似乎不是一个好的解决方案,因为
endl
抽象了特定系统特定指定行尾的方式,而 \n
则没有。这也似乎是一个糟糕的解决方案,因为如果我将来需要缓冲,那么我将不得不修改整个代码库。因此,我想问,有没有一种方法可以禁用
endl
的缓冲刷新功能?编辑
进一步挖掘似乎表明,
endl
和 \n
都会遵循操作系统选择结束行的各种方式。 它还表明 输出流会检测是否处于潜在的交互式情况,并相应地进行缓冲和刷新。因此:如果我能够弄清楚如何手动告诉输出流执行积极的缓冲,那么问题可能就解决了。
cout
通过将内容写入stdout
,会隐式地以文本模式打开,并因此执行字符转换来将\n
转换为正确的行结束符。尽管我找不到任何证实这一点的内容,但我认为编写\n
是完全可以的,而且具有可移植性。 - undefined