c-使用for循环进行加载..动画



所以我用C制作了一个BMI计算器,但我想让它看起来更像一个程序,让它更有趣,并有一点额外的特色。我一直在尝试实现的一个功能是制作一个动画,上面写着"加载…"。。。其中"每次出现一秒钟,以模拟实际正在加载的东西。我想出了这样的东西:

printf("Loading");
for (int i = 0; i < 5 ; i++)
{   
printf(".");
sleep(1);
}

然而,这根本不起作用,因为它打印出来的只是Loading,然后"以及接下来节目中出现的内容。如果在循环中的printf内部,我可以像在中一样\n使其工作

printf("Loading");
for (int i = 0; i < 5 ; i++)
{   
printf(".n");
sleep(1);
}

任何关于为什么会发生这种情况的建议都将不胜感激。感谢

您可以使用b退格。您可能还必须确保每次打印后都会刷新控制台,因为通常只有在遇到n时才会发生这种情况。

这里有一个可怕的Windows加载屏幕模拟器:

(只有Sleep是Windows特有的,其余都是标准C。(

#include <stdio.h>
#include <windows.h>
int main (void)
{
printf("Loading"); fflush(stdout);

for(;;)
{
for(int i=0; i<3; i++)
{
printf("."); fflush(stdout); 
Sleep(300);
}
for(int i=0; i<3; i++)
{
printf("b b"); fflush(stdout);
Sleep(300);
}
}
return 0;
}

b b返回一个字符,再次打印向前移动1个位置的空格,第二个b对此进行计数。

试试这样的东西:

printf("Loading");
fflush(stdout);
for (int i = 0; i < 5; i++) {
putchar('.');
fflush(stdout);
sleep(1);
}
putchar('n');

sleep()unistd.hUnix库的一部分。

最新更新