C++/iomanip
外觀
< C++
iomanip是w:C++標準程式庫中的一個w:頭文件,定義了C++標準中的流輸入輸出的有參數的操縱器(monipulator)。
概述
[編輯]- C++98
- resetiosflags : 重置輸入或輸出流的格式化標記。
- setiosflags : 設置輸入或輸出流的格式化標價。
- setbase : 設置進制,支持8進制、10進制、16進制。
- setfill : 設置std::setw將填充什麼樣的字符,如:std::setfill('*')
- setprecision : 設置浮點數的精度。
- setw : 設置填充多少個字符,默認填充的字符為' '空格。 setw 只為緊隨其後的值建立一個欄位寬度。列印該值後,流將回到其默認的列印方式。
- C++11:用於在輸入流或輸出流中,按照浸染的locale以及給定的格式化字符串fmt,分析輸入/輸出的字符形式的時間值或金額,存儲在相應的結構變量中。注意,money用long double或string類型表示,並且是包括了輔幣的整型值,例如$1.23實際表示為123.
- get_money : 根據本地設置,從輸入流中提取money值。
- put_money : 根據本地設置,輸出money值。
- get_time : 根據本地設置,從輸入流中提取time值。
- put_time : 根據本地設置,輸出time值。
- C++14
- quoted : 輸入或輸出引號括起來的字符 (quoted string,例如,XML和CSV格式的字符串)。能夠確保帶有嵌入空格的字符串在提取和插入的時候內容保持不變(skipws標誌被關閉)。字符串中的轉義字符被正確處理。
例子
[編輯]#include <iostream>
#include <sstream>
#include <locale>
#include <iomanip>
int main()
{
std::tm t = {};
std::istringstream ss("2011-Februar-18 23:12:34");
ss.imbue(std::locale("de_DE.utf-8"));
ss >> std::get_time(&t, "%Y-%b-%d %H:%M:%S");
if (ss.fail()) {
std::cout << "Parse failed\n";
} else {
std::cout << std::put_time(&t, "%c") << '\n';
}
}
可能的輸出:
Sun Feb 18 23:12:34 2011