2017-03-20 6 views
0
#include<stdio.h> 
int main() 
{ int n=3; 
    while(n>0) 
    { printf("P"); 
     n--; 
     sleep(1); 
    } 
    return 0; 
} 

このコードでは、3秒後に3つのPが同時に表示されます。しかし、私はそれを1秒の時間間隔で1つずつ表示したい。どのように修正する必要がありますか?sleep()を使用して少し遅れて文字を出力する

+2

の可能な複製を[私のprintf()の前にsleep()が実行されるのはなぜですか?](http://stackoverflow.com/questions/338273/why-does-sleep-execute-before-my-printf-the-opposite -order-of-my-code) – indiv

答えて

1

バッファがフラッシュされないのは、printfです。これを行うには、次のいずれかを実行でき、印刷 '\ n' をあなたのPの後: printf("P\n");

のどちらかをstdoutにfflushは呼び出す:あなたは、このいずれかを意味

printf("P"); 
fflush(stdout); 
0

#include<stdio.h> 
int main(){ 

int n=3; 
sleep(1); 

    while(n>0){ 
     printf("P"); 
     n--; 
     sleep(1); 
     } 
return 0; 
} 
関連する問題