即使有时间延迟,cout 也不打印
cout does not print even with time delay
我希望 cout
打印“hello”,两秒后打印“world”。
int t = time( NULL );
std::cout << "hello";
while( time(NULL) < (t + 2) );
std::cout << " world";
但是,cout
直到两秒后才在屏幕上打印注释,然后程序打印“hello world”。即使像(t + 9)
这样增加时间延迟,也是一样的结果。我不熟悉这种 cout
行为。
但是如果我在第一个 cout
处添加 std::endl
就像这样:
std::cout << "hello" << std::endl;
...
我得到预期结果“hello”,两秒后得到“world”。
std::cout
通常是缓冲的,这意味着除非您强制它,否则它可能不会立即输出。在第一次输出后尝试 std::flush
:
std::cout << "hello " << std::flush;
我希望 cout
打印“hello”,两秒后打印“world”。
int t = time( NULL );
std::cout << "hello";
while( time(NULL) < (t + 2) );
std::cout << " world";
但是,cout
直到两秒后才在屏幕上打印注释,然后程序打印“hello world”。即使像(t + 9)
这样增加时间延迟,也是一样的结果。我不熟悉这种 cout
行为。
但是如果我在第一个 cout
处添加 std::endl
就像这样:
std::cout << "hello" << std::endl;
...
我得到预期结果“hello”,两秒后得到“world”。
std::cout
通常是缓冲的,这意味着除非您强制它,否则它可能不会立即输出。在第一次输出后尝试 std::flush
:
std::cout << "hello " << std::flush;