2

我正在使用循环从字符串中删除字符,使用 printf(\b) 1 by 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 秒的时间间隔消失。

4

1 回答 1

6

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

printf("\b \b");
fflush(stdout);
于 2019-10-21T20:18:50.697 回答