155

私は次のコードを持っています:

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::>>演算子は文字列をスペースで区切ることはできますが、コンマでは区切ることができません。次の結果が得られるように、上記のコードを変更する方法はありますか?

入力: "abc,def,ghi"

出力
abc
def
ghi

4

2 に答える 2

305
#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
デフギ
_

于 2012-07-30T10:26:46.420 に答える