如何使用stringstream来分隔逗号分隔的string

我有以下代码:

std::string str = "abc def,ghi"; std::stringstream ss(str); string token; while (ss >> token) { printf("%s\n", token.c_str()); } 

输出是:

ABC
DEF,GHI

所以stringstream::>>运算符可以用空格分隔string,但不能用逗号分开。 无论如何修改上面的代码,以便我可以得到以下结果?

input :“abc,def,ghi”

输出
ABC
高清
GHI

 #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'; } 

也许这个代码将帮助你:

 stringstream ss(str);//str can be any string int integer; char ch; while(ss >> a) { ss>>ch; //flush the ',' cout<< integer <<endl; } 
 #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'; } }