从线上读取字段的最简单方法

时间:2014-04-30 04:00:12

标签: c++

我正在从文件中读取行。每行都遵循这种确切的格式,并带有|分隔符:

4|Get Shorty (1995)|01-Jan-1995||http://us.imdb.com/M/title-exact?Get%20Shorty%20(1995)|0|1|0|0|0|1|0|0|1|0|0|0|0|0|0|0|0|0|0

我使用ifstreamgetline从文件中抓取每一行。使用n个分隔符在一行中获取所有字段的最佳方法是什么?这可以用字符串流完成吗?我可以使用findsubstr进行操作,但它会很快变得难看,而且我认为它无法考虑具有可变n量的行分隔符。

1 个答案:

答案 0 :(得分:5)

您可以使用该行初始化std::istringstream,然后使用getline(isstream, field, '|')读出字段。将调用放在循环中以读取字段,直到流失败:

std::istringstream isstream(line);
for (std::string s; getline(isstream, s, '|');)
  // do stuff with s