輸入流操作器
std::ws
- 消耗輸入流中的前導空格。它與 std::skipws
不同。
#include <sstream>
...
std::string str;
std::istringstream(" \v\n\r\t Wow!There is no whitespaces!") >> std::ws >> str;
std::cout << str;
// Output: Wow!There is no whitespaces!
std::get_money(mon[, intl])
[C++ 11]。在表示式中,in >> std::get_money(mon, intl)
將字元輸入解析為貨幣值,由 in
中當前所在的語言環境的 std::money_get
facet 指定,並將值儲存在 mon
(long double
或 std::basic_string
型別)中。如果 intl
是 true
,則機械手期望所需的國際貨幣字串,否則期望可選的貨幣符號。
#include <sstream>
#include <locale>
...
std::istringstream in("$1,234.56 2.22 USD 3.33");
long double v1, v2;
std::string v3;
in.imbue(std::locale("en_US.UTF-8"));
in >> std::get_money(v1) >> std::get_money(v2) >> std::get_money(v3, true);
if (in) {
std::cout << std::quoted(in.str()) << " parsed as: "
<< v1 << ", " << v2 << ", " << v3 << '\n';
}
// Output:
// "$1,234.56 2.22 USD 3.33" parsed as: 123456, 222, 333
std::get_time(tmb, fmt)
[C++ 11] - 解析儲存在指定格式 fmt
的 tmb
中的日期/時間值。
tmb
- 指向將儲存結果的 const std::tm*
物件的有效指標。
fmt
- 指向以空值終止的字串 const CharT*
的指標,指定轉換格式。
#include <sstream>
#include <locale>
...
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';
}
// Possible output:
// Sun Feb 18 23:12:34 2011
有關更多資訊,請參閱上面的連結。