在C++中,我在"主"路径中使用usleep
,并在之前调用函数out
。
out();
usleep(4000000);
out
只是在屏幕上打印一些东西。不幸的是,尽管out()
函数调用在usleep
命令之前,但打印仅在4秒钟后出现在屏幕上。我用树莓做树莓。怎么可能不首先是函数out()
;被调用,然后usleep
开始,但反过来呢?
在C++中,为了减少IO的时间,我们缓冲了输出。这意味着,写入屏幕/磁盘的调用并不总是写入实际设备。
让我们以这个代码为例:
for (int x = 0; x < 10000; x++)
std::cout << "a";
如果每次都在屏幕上写"a",那将需要很长时间。相反,整个缓冲区每n个字符写入一次。
为了将非满缓冲区写入屏幕,您有几个选项:
像这样使用std::flush:
std::cout << std::flush;
Std::endl也使用flush:
std::cout << std::endl;