输入流操作器
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
有关更多信息,请参阅上面的链接。