是否可以使用普通字符串遍历getline字符串。
string nextLine;
getline(fin, nextLine);
nextLine = "2 BIRTH OCT 30 1998";
string stringTraverse = ?;
stringTraverse需要为“2”,然后是“BIRTH”,直到读完所有单词。
答案 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);