在getline字符串中获取字符串

时间:2011-07-15 02:19:34

标签: c++ string getline

是否可以使用普通字符串遍历getline字符串。

string nextLine;

getline(fin, nextLine);

nextLine = "2 BIRTH OCT 30 1998";

string stringTraverse = ?;

stringTraverse需要为“2”,然后是“BIRTH”,直到读完所有单词。

2 个答案:

答案 0 :(得分:2)

你可以在nextLine.c_str()上使用sscanf来获取每一块。或者将nextLine放入字符串流中,然后读取,直到流完成为止

stringstream s(nextLine);
while (s >> some_string)
    //do stuff with string piece

答案 1 :(得分:0)

以下是伪逻辑(未经测试,但看起来应该如此):

size_t word = 0, currentSpace;
while(string::npos != (currentSpace = nextLine.find(" ")))
{
  stringTraverse = nextLine.substr(word, currentSpace);
  while(nextLine[++currentSpace] == " ");
  word = currentSpace;
  // ... use it
}
if(nextLine[word] != 0)
  stringTraverse = nextLine.substr(word);