cout
是一个缓存流。这意味着数据将被写入缓冲区,并在流被刷新、程序终止或缓冲区完全填满时打印。
我编写了一个小程序来测试它的工作原理,但我不明白为什么它会在满足上述任何条件之前就开始打印。
#include <iostream>
#include <ctime>
using namespace std;
int main()
{
cout << "Test";
float secs = 5;
clock_t delay = secs * CLOCKS_PER_SEC;
clock_t start = clock();
while (clock() - start < delay) { }
return 0;
}
当运行时,“Test”会在循环开始之前输出。为什么我的输出不会缓冲,直到程序终止?
std::ios::sync_with_stdio(false);
。 - scohe001