关于网友提出的“问天问地问自己 问一个十分高深而又简单的问题”问题疑问,本网通过在网上对“问天问地问自己 问一个十分高深而又简单的问题”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题:问天问地问自己 问一个十分高深而又简单的问题描述:
endl是一个特殊值,称为"操纵符",将它写入输出流时,具有输出换行的效果,并刷新与设备相关联的缓冲区.通过刷新缓冲区,用户可立即看到写入流中的输出.
std::cout<<"Enter two numbers:";这句并没有std::endl为什么也可以输出"Enter two numbers:"
他不是说endl::通过刷新缓冲区,用户可立即看到写入流中的输出.
为什么没有刷新缓冲区也可以看那输出流呢?
解决方案1:这就是个理解的问题了。“通过刷新缓冲区,用户可立即看到写入流中的输出”,这句话并没有说“没有刷新缓冲区就不能看到输出流呢”。
就相当于医生告诉你“吃了药,你会很快痊愈”,但他并不是说“没吃药,你就不会痊愈”。 解决方案2:
cout 是一个输出数据要经过缓冲区暂存的标准输出
endl是一个ostream操作符,它把一个换行符插入到输出流中,然后再刷新ostream缓冲区(刷新ostream缓冲区:立即送显到屏幕(或立即写入文件)。缓冲方式下有时为了IO的效率,会在缓冲区容量到一定限度时才输出。