Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用printf在C中加载点效应_C_Printf - Fatal编程技术网

用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;
}