c++ - istringstream split_string(line) 如何在不使用 while 循环的情况下在换行时更新 split_string?
问题描述
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
推荐阅读
- java - Android Studio 问题:未使用的 Java 实例变量标记为已使用
- azure - 热门获取 Azure 搜索服务查询密钥
- swift - 如何检测 Swift 中的日变化
- php - 用 Woocommerce 3 中特定产品类别的产品替换追加销售
- java - 排序和过滤对象列表
- haskell - 模式不匹配:(_:_:_)
- android - 为什么在 RxJava 的每个 Observable 方法中都使用 subscribeOn
- c# - 使用 C# 中设置的键值创建数据表
- python - MultipleFileField wtforms
- java - JSP Servlet getParameter 给出 null