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
和使用<<
将内容放入可以读回的字符串流中。
更正:可以用来设置C++20 之前str()
的内容,所以这是最简单的解决方案。std::istringstream