wielokrotne użycie stringstream

0

Witam!
Mam problem z ponownym użyciem strumienia stringstream w kodzie.
Chcę wczytać linie(za pomocą getline) , która ma postać "n=x,m=y".
Za x i y wpisuje konkretną liczbę całkowitą np."n=6,m=9" wczytuje łańcuch typu string
do obiektu stringstream i kolejno zapisuje do zmiennych liczbowych n i m. Gdy chcę zrobić tę operację na kolejnej linii, zmienne n i m mają niezmienione wartości. Przykładowy kod zamieszczam poniżej:

#include<iostream>
#include<conio.h>
#include <sstream>
#include<string>
using namespace std;
int main()
{
   stringstream s1;
   string linia1,linia2; 
   int n,m;
   getline(cin,linia1);
   s1<<linia1;
   s1.seekg(2,ios::cur);
   s1>>n;
   s1.seekg(3,ios::cur);
   s1>>m;
   cout<<n<<" "<<m<<"\n";
   s1.seekp(ios::beg);
   s1.seekg(ios::beg);
   getline(cin,linia2);
   s1<<linia2;
   s1.seekg(2,ios::cur);
   s1>>n;
   s1.seekg(3,ios::cur);
   s1>>m;
   cout<<n<<" "<<m<<"\n";
   getch();
   return 0;
}

Prosiłbym o propozycje rozwiązania tego problemu, bo ja sam już nie mam pomysłów.

0

Musisz wyczyścić strumień.
s1.str("");
Ponadto jeżeli jest ustawiona flaga eofbit lub failbit trzeba ją wyczyścić.
s1.clear(s1.rdstate() & ~(ios::failbit | ios::eofbit));

0

Dzięki za rady - temat można zamknąć.

1 użytkowników online, w tym zalogowanych: 0, gości: 1