C++入门问题.

来源:百度知道 编辑:UC知道 时间:2024/06/24 18:15:42
end1是一个特殊值,称为操纵符,将它写入输出流时,个有输出换行的效果,并刷新写设备相关联的缓冲区.通过刷新缓冲区,用户可立即看到写入到流中的输出.

通过刷新缓冲区,用户可立即看到写入到流中的输出.是什么意思呢?说通俗点.

假设一个字符就是一瓶酒,你要送很多酒去给你的长辈。

从你哪儿到你长辈家有一条传输通道上面有个箱子可以装酒,你要送过去只需要把酒放到箱子里边就可以了。
现在你放一瓶然后再放一瓶 --》这时候就是你已经把字符发送到了缓冲区,而针对计算机就是内存。
然后你用endl告诉箱子,去吧--》这就是送过去了。。。

就是这个原因,也就是说,首先你要把酒放到箱子里边,然后再送过去,,
当然也有不通过箱子直接送过去的方法,那就是 cerr.

首先:endl,不是end1...
输出流是先把数据写到输出缓冲区里,然后再输出,而endl就是起到另缓冲区里的数据输出,并清空缓冲区,这就是刷新了,换句话说:编译器在接到endl时就马上让设备显示缓冲区里的数据

楼上回答正确。。。完全可以采纳他的答案。。。呵呵。。

比如吧:你写一个string到1.txt中,如果不刷新缓冲区的话编译运行后(不关闭IDE的情况下)你打开1.txt会发现并没有写进去,这时关闭IDE再打开文件发现写入成功。如果刷新缓冲区的话就会发现程序真运行后就写入成功了,,,