如何询问stringstream不要用引号分割数据(C++)

sas*_*ero 4 c++ stringstream

我正在使用std::stringstreamstd::string值中解析一些数据.
这段代码:

std::string str = "data1 data2 data3 \"quotated data\"";
std::stringstream ss(str);
Run Code Online (Sandbox Code Playgroud)

如果我使用,ss >> anotherStr;我会用空格分隔每个单词.
我不明白是否有一个选项可以让stringstream将引号中的数据作为单个字符串值读取?

Ric*_*ges 11

std::quotedIO操纵者正是你需要的.

这里有一个方便的参考: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;
}
Run Code Online (Sandbox Code Playgroud)

预期产量:

data1
data2
data3
quotated data
Run Code Online (Sandbox Code Playgroud)

  • Upticked!我每天都在这个网站上学到新东西.你是达曼,理查德. (3认同)
  • Arigatou gozaimasu! (2认同)