我这里用了写的动态时钟例程中的一小段代码来解释
这个是不加刷新缓冲区的 运行之后
这个是加了刷新缓冲的
运行之后
举个例子吧 比如 你的缓冲区的长度就只有10个字节,如果你输入的东西没有十个字节, ,没有填满,那么它当然不会显示在屏幕上,如果超出10个字节,就强制 输出。加个\n 和fflush()就是强制刷新缓冲区的 下边的我看别人的解释 举实例来说,比如设定缓冲长度是50字符。也就是说,每次cout输送50字符就强制输出一次。如果最后一次是个hello world,那么缓冲没有填满,就不会立即打印,而等待下一次缓冲满一并输出。如果在此之前程序结束了,那么这行输出很可能就被吞掉了。如果输出hello world之后发送一个endl到stdout,那么此时这句hello world就被强行冲出缓冲区直接进行打印,也就没有输出被吞没的问题了 |
|