如何暂停循环几秒钟?
how to pause a loop for a number of seconds?
每当他完成其中一个案例时,我都想停下来。但是我把 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
}
}
我试图 运行 你的代码在一些在线编译器上
https://www.onlinegdb.com/online_c++_compiler
我假设您的代码没有问题,可能是编译器问题。
如果还是不行,可能是你的缓冲区有问题。
有时,字符不会打印,直到超出某些缓冲区或打印换行符。有 2 种方法可以试试这个
- 在
sleep
方法之前使用fflush(stdout)
调用来刷新缓冲区
- 使用 C++
cout
库的更好方法,因为库会自动为您刷新
每当他完成其中一个案例时,我都想停下来。但是我把 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
}
}
我试图 运行 你的代码在一些在线编译器上 https://www.onlinegdb.com/online_c++_compiler
我假设您的代码没有问题,可能是编译器问题。
如果还是不行,可能是你的缓冲区有问题。
有时,字符不会打印,直到超出某些缓冲区或打印换行符。有 2 种方法可以试试这个
- 在
sleep
方法之前使用fflush(stdout)
调用来刷新缓冲区 - 使用 C++
cout
库的更好方法,因为库会自动为您刷新