如何要求字符串流不要在引号中拆分数据 (C++)
How to ask stringstream don't split data in quotes (C++)
我使用std::stringstream
从std::string
值解析一些数据
此代码:
std::string str = "data1 data2 data3 "quotated data"";
std::stringstream ss(str);
如果我使用ss >> anotherStr;
,我会得到用空格分隔的每个单词
我不明白有没有一个选项可以要求stringstream将引号中的数据读取为单个字符串值?
std::quoted
io操纵器正是您所需要的。
这里有一个方便的参考:http://en.cppreference.com/w/cpp/io/manip/quoted
以及一个工作示例:
#include <iostream>
#include <sstream>
#include <iomanip>
int main()
{
using namespace std;
std::string str = "data1 data2 data3 "quotated data"";
std::stringstream ss(str);
std::string s;
while (ss >> std::quoted(s))
{
std::cout << s << std::endl;
}
return 0;
}
预期输出:
data1
data2
data3
quotated data
相关文章:
- 跨线程共享数据集与拆分每个线程的数据
- 在 CGAL 中将对数据类型拆分为其元素
- 在qt中使用'n'字符拆分数据
- QbyteArray 数据拆分
- 浏览器可以将有效载荷数据拆分为多个Websoket帧
- 如何要求字符串流不要在引号中拆分数据 (C++)
- C++ - 将 int 拆分为两种较小的数据类型
- 将大型数据文件拆分为多个小文件(文本格式)
- 将 std::map 的数据拆分为多个 std::vector
- 将一组数据拆分为不同的类别
- C++将具有非常相关数据的类 Tree 拆分为两个类
- C++ OpenMP:将 for 循环拆分为静态偶数块,并在最后连接数据
- 拆分OpenCV Mat而不复制数据
- 拆分文件并将数据传递给其他类
- 对rope数据结构进行拆分操作
- 当使用Boost ASIO时,有效载荷拆分为两个TCP数据包,当它适合MTU时
- 如何将数据文件拆分为多个部分
- QStringList::将包含数据的长字符串拆分为许多不同的QString
- C++停止CAsyncSocket将单个大数据包拆分为多个小数据包
- 将拆分的 TCP 数据包与闪存套接字重新组合