LINUX.ORG.RU

[stl][c++] stringstream

 ,


0

0

Вожусь не могу понять как работает stringstream. Вот кусок кода:

while (linenum < svec.size()) {
  line = svec[linenum];

  if (!line.compare(0,5,"VALUE")) {
    ss.str(line);
    ss.seekg(0);

    cout << "ss position is: " << ss.tellg() << endl;
    cout << "ss.str() is: " << ss.str() << endl << endl;

    ss >> lkeyword;
    ss >> lkey;
    ss >> flags;
    ss >> size;
    linenum++;
    line = svec[linenum];
    lvalue = line.substr(0,size);

    cout << "  lkeyword is: " << lkeyword << endl;
    cout << "  lkey is: " << lkey << endl;
    cout << "  flags is: " << flags << endl;
    cout << "  size is: " << size << endl;
    cout << "  lvalue is: " << lvalue << endl << endl;

    lkeyword=""; lkey=""; flags=-1; size=-1; lvalue="";
  }
  linenum++;
}

Проблема в том что на второй итерации цикла считывание уже «не работает», т.е. ss >> variable уже не помещает значение в variable.

в даном случае vector<string> svec ; string line;

★★★★★

Самое что мне непонятное так это то что
cout << ss.str()
дает верный результат, т.е. вроде бы нужная строка в нем есть...

Jetty ★★★★★
() автор топика
Ответ на: комментарий от Jetty

замена ss.seekg(0); на ss.clear(); порешала проблему :)

Jetty ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.