2

printf(\b) 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 に答える