在退出进程之前,如何在C中每秒显示一个点?
How to display one dot every second in C before quitting the process?
我正在尝试显示 ...(三个点),但每个点然后是第二个延迟,然后是第二个点,然后是第二个延迟,然后是第三个点。
我试过了
for(int i = 0;i < 3;i++)
{
sleep(1);
printf(".");
sleep(1);
}
但这只是等待 6 秒,然后将三个点打印在一起,但我不希望这样。有没有解决办法。我要
.秒延迟.秒延迟.
但它会出现
...
尝试:
#include <stdio.h>
#include <unistd.h>
int main() {
for(int i = 0;i < 3;i++)
{
printf(".");
fflush(stdout);
sleep(1);
}
}
printf()
打印到缓冲的 stdout
。每次 printf()
.
后刷新缓冲区
<< std::flush;
是与此等效的 C++。
你在Linux还是Windows?
如果你在Windows,调用的函数应该是
Sleep(1000);
这是因为 Windows 将其“睡眠”功能视为以毫秒为单位,即 x * 1000,其中 'x' 是您希望程序计时的秒数。你的例子是每秒,所以你说 1 * 1000 就是 1000,所以函数应该如上所述,让你的程序每秒滴答。
这是完整的代码。
#include <windows.h>
for(int i = 0;i < 3;i++)
{
//Sleep(1000); pre-pause 1 second before print
printf(".");
//Sleep(1000); post-pause 1 second after print
}
}
我正在尝试显示 ...(三个点),但每个点然后是第二个延迟,然后是第二个点,然后是第二个延迟,然后是第三个点。
我试过了
for(int i = 0;i < 3;i++)
{
sleep(1);
printf(".");
sleep(1);
}
但这只是等待 6 秒,然后将三个点打印在一起,但我不希望这样。有没有解决办法。我要
.秒延迟.秒延迟.
但它会出现
...
尝试:
#include <stdio.h>
#include <unistd.h>
int main() {
for(int i = 0;i < 3;i++)
{
printf(".");
fflush(stdout);
sleep(1);
}
}
printf()
打印到缓冲的 stdout
。每次 printf()
.
<< std::flush;
是与此等效的 C++。
你在Linux还是Windows?
如果你在Windows,调用的函数应该是
Sleep(1000);
这是因为 Windows 将其“睡眠”功能视为以毫秒为单位,即 x * 1000,其中 'x' 是您希望程序计时的秒数。你的例子是每秒,所以你说 1 * 1000 就是 1000,所以函数应该如上所述,让你的程序每秒滴答。
这是完整的代码。
#include <windows.h>
for(int i = 0;i < 3;i++)
{
//Sleep(1000); pre-pause 1 second before print
printf(".");
//Sleep(1000); post-pause 1 second after print
}
}