作者bonoshi (sbo)
看板EE_DSnP
標題Re: [請益]請問cout.flush()的功用
時間Wed Oct 15 13:38:51 2008
其實還是不大懂cout.flush()的功能
我知道它可以清除緩衝區(buffer)
我查了一下buffer的資料
http://zh.wikipedia.org/wiki/%E7%B7%A9%E8%A1%9D%E5%99%A8
不過對於buffer還是有許多疑問
例如,電腦的buffer就是我們說的記憶體嗎?(1)
如果是,那cout處理的資料流傳到螢幕上,它的過程是什麼?(2)
甚至和windows裡的「命令提示字元」有關嗎?(3)
為什麼在弄Vitual Timer時我們要清除緩衝區內的資料,它每一次重新print
出來時不會覆蓋嗎?(4)緩衝區內資料被清除,和「換行」為什麼有關係?(5)
還有如果沒有使用cout.flush()會造成些許delay,不過如果多加這一行命令
系統也要多花一點時間執行,那麼多增加這個操作,會比較好還是不好?(6)
承上,那何時是cout.flush()使用的時機呢?(7)
另外我查到一個有關Visual C++的技術支援
http://support.microsoft.com/kb/94227/en-us/
它第一段就提到說"For Visual C++ 4.2 and later versions, this behavior
only occurs when using the old iostream libraries."
那我們常用的編譯軟體是不是比較完善的iostream library?(8)
(抱歉同一個東西一次問了那麼多問題ˊˋ
review的時候又看到cout.flush(),一直很想問…)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.240.71
1F:推 ric2k1:我上課時來回答一下 10/15 14:50
※ 編輯: bonoshi 來自: 140.112.240.71 (10/17 01:02)