对于 windows,unix 环境中 c++ 中的 sleep() 是否可以与 Turbo C++ 中的 delay() 一样使用?
Can sleep() in c++ in unix environment be used as the same as delay() in Turbo C++ for windows?
在 Turbo C++ 中:
while(i<10)
{delay(100);
cout<<"*";
i++;}
将在 100 毫秒的固定间隔后打印“*”。如果我尝试在 UNIX 的 C++ 中做同样的事情,比如:
while(i<10)
{
sleep(1);
cout<<"*";
i++;}
它在 10 秒的单个间隔后一次打印 10 次“*”。
拜托,谁能解释一下为什么它不起作用。
因为cout
经常默认缓冲。如果您想立即打印它,请冲洗它:
std::cout << "*" << std::flush;
在 Turbo C++ 中:
while(i<10)
{delay(100);
cout<<"*";
i++;}
将在 100 毫秒的固定间隔后打印“*”。如果我尝试在 UNIX 的 C++ 中做同样的事情,比如:
while(i<10)
{
sleep(1);
cout<<"*";
i++;}
它在 10 秒的单个间隔后一次打印 10 次“*”。
拜托,谁能解释一下为什么它不起作用。
因为cout
经常默认缓冲。如果您想立即打印它,请冲洗它:
std::cout << "*" << std::flush;