【发布时间】:2020-05-03 21:13:54
【问题描述】:
每次他完成 1 个案例时,我都会尝试暂停一下。但是我把 sleep(1) 放在哪里并不重要,它会休眠 5 秒,而不是一次提供所有输出。或者当我要求 10 个输出时,它会等待 10 秒再给我输出。
我想要的是在下一秒之间获得 1 秒的输出,依此类推。这是我的代码,我已经把它做得尽可能小,所以它不会永远阅读。 我尝试在几乎每个地方都设置 sleep(1),但结果都是一样的。
//include list
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <unistd.h>
// variable list
int i = 0;
int StopNow;
int start = 0;
int main(void)
{
srand(time(0));
while(i<5)
{
switch(rand() % 4 + 1) // picking a random number between 1 and 4.
{
case 1:
printf("\n 1");
break;
case 2:
printf("\n 2");
break;
case 3:
printf("\n 3");
break;
case 4:
printf("\n 4");
break;
}
i++;
sleep(1); // Pause
}
}
【问题讨论】:
-
你是从哪里运行这个程序的?
-
你如何运行你的程序?在在线 IDE 中?
-
如果在
sleep之前添加fflush(stdout);调用,请查看行为是否改变。输出可能正在缓冲中。 -
@JulioAnthonyLeonard 我在 Visual Studio 代码中运行它
-
如果您使用 C++,请使用
cout和endl进行刷新。如果这没有帮助,请尝试使用std::this_thread::sleep_for而不是Sleep
标签: c++ loops switch-statement sleep pause