C 強制資料輸出 Posted on 2012 年 9 月 18 日2021 年 3 月 12 日 By 日落 在〈C 強制資料輸出〉中有 4 則留言 無意間發現透過 printf 輸出資料時,程式會將資料放在 buffer 中,過一段時間後再一起印出。 int main(){ while(1){ printf("."); sleep(1); } return 0; } 可以透過 fflush() 強制將 buffer 中的資料輸出: while(1){ printf("."); fflush(stdout); sleep(1); } Tags:C/C++, 程式設計
http://stackoverflow.com/questions/1716296/why-does-printf-not-flush-after-the-call-unless-a-newline-is-in-the-format-strin 回覆
在用 printf debug 大法時要注意這個問題 XD
我記得fflush用在stdout會有啥問題的樣子
我查到另一個辦法是直接改stdout
setvbuf(stdout, NULL, _IONBF, 0);
http://stackoverflow.com/questions/1716296/why-does-printf-not-flush-after-the-call-unless-a-newline-is-in-the-format-strin
糗大….我看反了,是不應該fflush(stdin) /facepalm