看板 EE_DSnP 關於我們 聯絡資訊
其實還是不大懂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
ric2k1:我上課時來回答一下 10/15 14:50
※ 編輯: bonoshi 來自: 140.112.240.71 (10/17 01:02)