istringstream split_string(line) 如何在不使用 while 循环的情况下更改行时更新 split_string?
istringstream split_string(line) how to update the split_string while changing line without using while loop?
line = "hello 2021"
istringstream split_string(line);
是从字符串中获取值的有用代码,即
split_string>>str>>temp_double;
但是,假设 line 的值发生了变化,即
line="hello world"
,有人想用行的更新值编写以下代码。
split_string>>str1>>str2;
如何更新 split_string 以便流式传输行的更新值?
在 C++20 标准中 std::istringstream
now has an str()
method that allows replacing the contents of its internal buffer。此功能在 C++17 或更早版本中不可用。
在 C++20 之前,最接近的替代方法是使用 std::stringstream
而不是 std::istringstream
并使用 <<
将内容放入可以读回的字符串流中。
更正:在 C++20 之前可以使用 str()
设置 std::istringstream
的内容,因此这是最简单的解决方案。
line = "hello 2021"
istringstream split_string(line);
是从字符串中获取值的有用代码,即
split_string>>str>>temp_double;
但是,假设 line 的值发生了变化,即
line="hello world"
,有人想用行的更新值编写以下代码。
split_string>>str1>>str2;
如何更新 split_string 以便流式传输行的更新值?
在 C++20 标准中 std::istringstream
now has an str()
method that allows replacing the contents of its internal buffer。此功能在 C++17 或更早版本中不可用。
在 C++20 之前,最接近的替代方法是使用 std::stringstream
而不是 std::istringstream
并使用 <<
将内容放入可以读回的字符串流中。
更正:在 C++20 之前可以使用 str()
设置 std::istringstream
的内容,因此这是最简单的解决方案。