如何使用字符串流来分隔逗号分隔的字符串

我有以下密码:

std::string str = "abc def,ghi";
std::stringstream ss(str);


string token;


while (ss >> token)
{
printf("%s\n", token.c_str());
}

输出结果是:

Abc
Def Gi

因此,stringstream::>>运算符可以通过空格而不是通过逗号来分隔字符串。是否有办法修改以上代码,以便我可以得到以下结果?

输入 : “ abc,def,ghi”

输出 :
Abc
绝对的

296123 次浏览
#include <iostream>
#include <sstream>


std::string input = "abc,def,ghi";
std::istringstream ss(input);
std::string token;


while(std::getline(ss, token, ',')) {
std::cout << token << '\n';
}

Abc
绝对的

#include <iostream>
#include <string>
#include <sstream>
using namespace std;
int main()
{
std::string input = "abc,def,   ghi";
std::istringstream ss(input);
std::string token;
size_t pos=-1;
while(ss>>token) {
while ((pos=token.rfind(',')) != std::string::npos) {
token.erase(pos, 1);
}
std::cout << token << '\n';
}
}