-
iomanip
鎖定
iomanip,在C++程序裏面經常見到下面的頭文件#include ,io代表輸入輸出,manip是manipulator(操縱器)的縮寫(在c++上只能通過輸入縮寫才有效)。
- 外文名
- iomanip
- 含 義
- C++程序中的頭文件
- 開 頭
- #include <iomanip>
- 性 質
- 操縱運算子
iomanip功能
用來對輸入輸出操作的格式進行更加方便的控制,在ios_base基類的基礎上將每一種格式的設置和刪除都進行了函數級的同名封裝,提供了全局的調用接口函數,支持在運算符“<<”和“>>”上的多次使用,配合ios_base實例的控制。是I/O流控制頭文件,就像C裏面的格式化輸出一樣。
如果在一次輸出過程中需要混雜多種格式,使用ios_base的成員函數來處理就顯得很不方便。STL另提供了iomanip庫可以滿足這種使用方式。
iomanip接口
控 制 符 | 作用 |
setbase(n) | 設置整數為n進制(n=8,10,16) |
setfill(n) | 設置字符填充,n可以是字符常或字符變量 |
setprecision(n) | 設置浮點數的有效數字為n位 |
setw(n) | 設置字段寬度為n位 |
setiosflags(ios::fixed) | 設置浮點數以固定的小數位數顯示 |
setiosflags(ios::scientific) | 設置浮點數以科學計數法表示 |
setiosflags(ios::left) | 輸出左對齊 |
setiosflags(ios::right) | 輸出右對齊 |
setiosflags(ios::skipws) | 忽略前導空格 |
上述接口與ios_base的格式控制成員是對應的,可以二者配合進行輸出格式的精準控制。其中的精度控制默認是6位有效數字,科學計數法中的指數部分e為默認小寫。setw設置的寬度如果小於字段寬度會失效
[1]
。
iomanip實例
#include <iostream> #include <iomanip> using namespace std; int main() { double PI=3.141592654; cout<<PI<<endl; cout<<setprecision(2)<<PI<<endl; cout<<fixed<<setprecision(2)<<PI<<endl; cout<<setfill('*')<<setw(20)<<setprecision(10)<<PI<<endl; cout<<setfill('*')<<setw(20)<<setprecision(10)<<left<<PI<<endl; cout<<scientific<<setprecision(10)<<PI<<endl; cout<<scientific<<uppercase<<setprecision(10)<<PI<<endl; return 0 ; } 輸出結果如下: 3.14159 3.1 3.14 ********3.1415926540 3.1415926540******** 3.1415926540e+000 3.1415926540E+000