用printf在C中加载点效应
我想打印一个简单的加载消息作为加载。。。点一个接一个地引入,其间有延迟。当显示第三个点时,我想擦除这些点并重新开始 我尝试的代码是:用printf在C中加载点效应,c,printf,C,Printf,我想打印一个简单的加载消息作为加载。。。点一个接一个地引入,其间有延迟。当显示第三个点时,我想擦除这些点并重新开始 我尝试的代码是: PRINTF("Loading"); for(int i=0;i<=3;i++){ DelayMs(800); PRINTF("."); } DelayMs(800); PRINTF("\r "); PRINTF("\r"); 提前谢谢。如果要重置线路,请尝试此打印\r收听 而不是 PRINTF("\r>&
PRINTF("Loading");
for(int i=0;i<=3;i++){
DelayMs(800);
PRINTF(".");
}
DelayMs(800);
PRINTF("\r ");
PRINTF("\r");
提前谢谢。如果要重置线路,请尝试此打印\r收听 而不是
PRINTF("\r>> ");
PRINTF("\r");
应该是:
while(condition to stop this animation){
printf("Listening");
for(int i=0; i<3; i++){
delay(500);
printf(".");
}
printf("\r");
}
当输出不包含换行符时,使用fflushstdout强制打印。
格式说明符%s将输出一个长度受整数参数限制的字符串。随着每一个的增加,打印的点数将从零变为三。空格将“擦除”前面的点,空格\b将擦除空格。
在Linux上,我使用sleep而不是DelayMS
你在用arduino吗?您确定您的终端支持\r字符吗?您是如何显示字符的?我们无法知道您的非标准PRINTF函数是如何工作的。请指定您正在使用的系统。另外,请阅读。请始终显示实际问题和实际输出的实际代码。您的代码不打印侦听,但打印加载。请不要编写与输出不匹配的代码。使用“复制和粘贴”显示真实代码。其他一切都容易引入实际代码中不存在的错误。
while(condition to stop this animation){
printf("Listening");
for(int i=0; i<3; i++){
delay(500);
printf(".");
}
printf("\r");
}
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main( void) {
for ( int loop = 0; loop < 4; ++loop) {
for ( int each = 0; each < 4; ++each) {
printf ( "\rloading%.*s \b\b\b", each, "...");
fflush ( stdout);//force printing as no newline in output
sleep ( 1);
}
}
printf ( "\n");
return 0;
}