好不容易借到了C++ Primer 4/e中文版,結果第一個範例就出現了一堆錯誤:
add.cc: In function `int main()’:
add.cc:13: error: `end1′ is not a member of `std’
add.cc:15: error: `V1′ was not declared in this scope
add.cc:15: error: `V2′ was not declared in this scope
add.cc:17: error: `end1′ is not a member of `std’
原來endl是”l”不是”1″,v1,v2大小寫有分,從書本裡面自己動手diy就會有這些盲點沒注意到。
課本對endl有更詳細的解釋:
『endl是個特殊值,稱為操控器(manipulator),當這個值被寫至output stream時,會輸出一個換行符號並將輸出裝置的緩衝區(buffer)清空。藉由清空緩衝區我們便能確定用戶立即看到寫至stream的文字。』
另外要當心的是,『程式員經常在除錯(debugging)時插入一些列印述句。這種述句一定要記得清空stream,否則輸出文字有可能再程式當掉時殘留於緩衝區,導致對程式當調位置的錯誤推斷。』