在退出进程之前,如何在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
    }
}