hen*_*nle 6 c++ string iostream
所以你可以做这样的事情,例如:
std::string a("01:22:42.18");
std::stringstream ss(a);
int h, m, s, f;
ss >> h >> m >> s >> f;
Run Code Online (Sandbox Code Playgroud)
通常需要格式化字符串"01 22 42 18"
.你能直接修改当前的语言环境来做到这一点吗?
我不认为你可以在不创建新语言环境的情况下更改默认分隔符,但这似乎是hackish.您可以使用的是使用getline和第三个参数指定分隔符字符,或者您可以读取分隔符而不对它们执行任何操作(例如ss >> h >> d >> m >> d >> s >> d> > f).
您也可以编写自己的解析类来处理为您分割字符串.或者更好的是,使用Boost的String Algorithms Library中的boost :: split.
int h, m, s, f;
sscanf(a.c_str(), "%d:%d:%d.%d", &h, &m, &s, &f);
Run Code Online (Sandbox Code Playgroud)
* 警告:我和 C++ 已经有一段时间了