輸入流操作器

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 指定,並將值儲存在 monlong doublestd::basic_string 型別)中。如果 intltrue,則機械手期望所需的國際貨幣字串,否則期望可選的貨幣符號。

#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] - 解析儲存在指定格式 fmttmb 中的日期/時間值。

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

有關更多資訊,請參閱上面的連結。