line = "hello 2021"
istringstream split_string(line);
是从字符串中获取值的有用代码,例如
split_string>>str>>temp_double;
但是,假设line的值改变了,即
line="hello world"
,一个人想用line.
的更新值写下面的代码split_string>>str1>>str2;
如何更新split_string,使其流式更新的值行?
在c++ 20标准中,std::istringstream
现在有一个允许替换其内部缓冲区内容的str()
方法。此功能在c++ 17或更早版本中不可用。
在c++ 20之前,最接近的替代方案是使用std::stringstream
代替std::istringstream
,并使用<<
将可读的内容放入字符串流中。
更正:可以使用str()
将std::istringstream
的内容设置在c++ 20之前,所以这是最简单的解决方案。