什么是“刷新输出流”

来源:百度知道 编辑:UC知道 时间:2024/06/11 13:31:01
我不理解到底“刷新输出流”是什么意思。我直接用“\n" 不是也立刻显示在屏幕上了吗?

想输出流写数据时,流不必立刻把数据写到目的中。当下列条件之一发生时,或者累积的数据

1.到达一二标记,比如endl
2.流超出了作用域,因此被取消
3.对应的输入流请求输入,比如cin输入时,cout会刷新缓冲
4.流缓冲已满
5.明确告诉流要刷新缓冲区 cout.flush(); or fflash(stdout);

endl会把一个'\n'写入流。

区别是,endl除了写'\n'进输出流之外,还调用输出流的flush函数,刷新缓冲区,让数据直接写入文件或者屏幕上。

都可以用的,不过如果需要立即显示,比如输出到显示器的场合,最用用endl,如果只是写一个'\n'不一定会立即显示,因为数据可能被存在缓冲区里,没有理解写入设备。

输出流是文件考虑效率的时候,可以直接写'\n',这样不刷新缓冲区,会更快

每次运行这个endl系统就刷新流...