C++ 中 cerr 的缓冲机制:立即输出到标准错误
在 C++ 中,cerr 是无缓冲的,它的输出会立即被发送到标准错误设备,通常是控制台。这意味着,即使在程序崩溃或异常终止时,cerr 的输出也会显示在控制台上。
与之相反,cout 是全缓冲的,它的输出会先存储在缓冲区中,直到缓冲区满了或者手动刷新缓冲区时,才会将数据发送到标准输出设备。这种缓冲行为可以提高程序的性能,但也可能导致输出被延迟显示。
可以使用以下方法手动刷新缓冲区:
cout << 'Hello, World!' << endl; // 或者使用 cout.flush();
而对于 cerr,不需要手动刷新缓冲区,它会立即将输出发送到标准错误设备。
原文地址: http://www.cveoy.top/t/topic/bmzN 著作权归作者所有。请勿转载和采集!