我正在使用循环,使用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秒的时间间隔消失。
答案 0 :(得分:5)
printf
输出被缓冲。使用fflush(stdout)
强制其立即输出。同样,\b
向左移动光标,但不会删除光标下方的字符。打印"\b \b"
将其移回,打印一个空格,然后再次将其移回。
printf("\b \b");
fflush(stdout);