【发布时间】:2015-06-24 10:17:28
【问题描述】:
我最近阅读了一篇文章,其中指出使用\n 比使用std::endl 更可取,因为endl 也会刷新流。
但是当我寻找有关该主题的更多信息时,我发现了一个网站,上面写着:
如果您处于必须避免缓冲的情况,您可以使用 std::endl 代替 ‘\n’
现在我的问题来了:在哪种情况下最好不写入缓冲区?因为我只看到了这种技术的优势。写入缓冲区不是也更安全吗?因为它比硬盘驱动器小,它会比存储在 HD 上的数据更快地被覆盖(我不确定这是否属实)。
【问题讨论】:
-
使用缓冲时,您可能会执行一些对话框询问用户数据(带有提示),并且在您从键盘读取之前不会打印文本。在某些外围设备(例如串行端口)的情况下,您可能会写入缓冲区,并且当程序停止时,外围设备也会关闭(并且不会发送数据。