iomanip,在C++程式裡面經常見到下面的頭檔案#include <iomanip>,io代表輸入輸出,manip是manipulator(操縱器)的縮寫(在c++上只能通過輸入縮寫才有效)。
基本介紹
- 外文名:iomanip
- 含義:C++程式中的頭檔案
- 開頭:#include <iomanip>
- 性質:操縱運運算元
功能,接口,實例,
功能
用來對輸入輸出操作的格式進行更加方便的控制,在ios_base基類的基礎上將每一種格式的設定和刪除都進行了函式級的同名封裝,提供了全局的調用接口函式,支持在運算符“<<”和“>>”上的多次使用,配合ios_base實例的控制。是I/O流控制頭檔案,就像C裡面的格式化輸出一樣。
如果在一次輸出過程中需要混雜多種格式,使用ios_base的成員函式來處理就顯得很不方便。STL另提供了iomanip庫可以滿足這種使用方式。
接口
控 制 符 | 作用 |
setbase(n) | 設定整數為n進制(n=8,10,16) |
setfill(n) | 設定字元填充,c可以是字元常或字元變數 |
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設定的寬度如果小於欄位寬度會失效。
實例
#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.141592654 3.1 *******3.1415926540 3.1415926540******* 3.1415926540e+000 3.1415926540E+000