我需要根据自定义分隔符切割字符串流。当前代码仅根据几个标准分隔符进行切割。如何根据自定义分隔符定义和切割stringstream
到字符串行?
std::istringstream input;
input.str("1\n2\n3\n4\n5\n6\n7\n");
int sum = 0;
for (std::string line; std::getline(input, line); )
{
cout<<line;
}
最佳答案
如果您想使用一个定界符并且它是单个字符,您可以将它传递给 std::getline()
的 3 参数重载。 :
std::istringstream input;
input.str("1;2;3;4;5;6;7;");
int sum = 0;
for (std::string field; std::getline(input, field, ';'); )
{
std::cout<<field;
}
对于其他情况(多字符定界符、多个定界符),您可能需要考虑使用 Boost.Tokenizer .
关于c++ - 标记字符串流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25808379/