使用 istringstream 按逗号拆分字符串

Split string by commas using istringstream

我试过这段代码可以用逗号分割字符串:

string spa ="12,233,434,2";
istringstream iss(spa + ",");
int val;
char dot =',';
while(iss >> val >> dot){
     cout << val << endl;
} 

但我不知道它是如何工作的。好像是先取值,再右移?

iss >> val >> dot 读取一个 int 和一个 char,这恰好与输入的格式匹配。

他们在阅读之前的价值观根本不重要。

while测试读取是否成功,输入失败则停止。