如何使用printf(“ \ b”)使控制台输出看起来像打字机?

时间:2019-10-21 20:15:43

标签: c printf backspace console-output

我正在使用循环,使用printf(\ b)1乘1删除字符串中的字符,并在其间睡眠0.1秒。但是,当我运行代码时,它会同时发生。

我确实尝试键入每个printf,因为我认为可能是循环的原因,但输出仍然相同

#include <stdio.h>
#include <unistd.h>

void coolIntro(){
int i;

printf("A Game by Hideo Kojima");

Sleep(800);

for(i=0;i<12;i++){

    printf("\b");

    Sleep(100);

        }

printf("my_name_here");
}

我希望字母以0.1秒的时间间隔消失。

1 个答案:

答案 0 :(得分:5)

printf输出被缓冲。使用fflush(stdout)强制其立即输出。同样,\b向左移动光标,但不会删除光标下方的字符。打印"\b \b"将其移回,打印一个空格,然后再次将其移回。

printf("\b \b");
fflush(stdout);