C/C++的格式化輸出(2)--cout

二、cout格式化輸出

將 cout 的 flag 保存到變量, 以便修改後的恢復


    ostream::fmtflags old = cout.flag() ;        // 無參將返回當前 flag 值
cout.flag(old) ; // 恢復到原先保存的值

 


cout.setf設置標誌

    cout.setf(ios::right | ios::hex); 
cout.setf(ios::right, ios::adjustfield); 

 


 


cout.unsetf取消標誌










控制輸出格式和成員函數



如果要與scanf和printf聯合使用,務必在調用cout前加上cout.sync_with_stdio(),設置與stdio同步,否則輸出的數據順序會發生混亂。

flush和endl都會將當前緩衝區中的內容立即寫入到屏幕上,而unitbuf/nounitbuf可以禁止或啓用緩衝區。


  • ios::dec  以10進製表示整數
  • ios::hex  以16進製表示整數
  • ios::oct  以8進製表示整數
  • ios::showbase  爲整數添加一個表示其進制的前綴
  • ios::internal  在符號位和數值的中間插入需要數量的填充字符以使串兩端對齊
  • ios::left  在串的末尾插入填充字符以使串居左對齊
  • ios::right  在串的前面插入填充字符以使串居右對齊
  • ios::boolalpha  將bool類型的值以true或flase表示,而不是1或0
  • ios::fixed  將符點數按照普通定點格式處理(非科學計數法)
  • ios::scientific  將符點數按照科學計數法處理(帶指數域)
  • ios::showpoint  在浮點數表示的小數中強制插入小數點(默認情況是浮點數表示的整數不顯示小數點)
  • ios::showpos  強制在正數前添加+號
  • ios::skipws  忽略前導的空格(主要用於輸入流,如cin)
  • ios::unitbuf  在插入(每次輸出)操作後清空緩存
  • ios::uppercase  強制大寫字母



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章