试图用c++制作一个动画加载圈

Trying to make an animated loading circle in c++

本文关键字:一个 动画 加载 c++      更新时间:2023-10-16

我正在尝试制作一个代码,该代码将使用|/-制作一个纺车

基本上需要做的是打印-行,然后将其替换为\then|then/等等,这样看起来就像是在制作一个动画加载标志。问题是我不知道如何做到这一点。

这里有一个小的C程序可以做这样的事情。这假设您的终端使用'\r'转到行的开头,而不是下一行。使用刷新是因为有时输出是缓冲的,所以在刷新之前不会打印:

#include <stdio.h>
#include <unistd.h>
int main(void)
{
printf("-");
fflush(stdout); 
sleep(1);
printf("r/");
fflush(stdout);
sleep(1);
printf("r|");
fflush(stdout);
sleep(1);
printf("r\");
fflush(stdout);
sleep(1);
printf("nn");
}

在实践中,你不会睡觉,你会在打印报表之间工作。在实践中,你可能想在一个不同于打印它的线程中运行工作,或者你需要定期中断工作来进行打印。

看到\n和\r之间的区别吗?有关"\n"answers"\r"之间差异的概述。

作为一种选择,如果您有一个支持VT100代码的终端,您可以使用这样的功能将光标移动到一个特定的位置,在那里您可以绘制和重新绘制动画:

void gotoxy(int x, int y)
{
printf("%c[%d;%df", 27, y, x);
}

如果这两种方法都不起作用,你将需要提供更多关于你试图在上面做这件事的系统的信息