將 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 強制大寫字母