stringstream :: operator >> только для чтения, а не для извлечения следующего токена из потока - PullRequest
4 голосов
/ 04 декабря 2010

Как я могу просто прочитать первый новый "токен" (стандартная последовательность непробельных символов, прекрасно извлеченная оператором >>), не удаляя его из потока? Могу ли я извлечь строку, проверить, нужно ли ее вернуть, и сбросить итератор внутреннего потока? Я думаю, что это может сработать, но понятия не имею, как это реализовать ...

Пример:

#include <string>
    using std::string;
#include <sstream>
    using std::stringstream;

int main()
{
    string s("test string \\ bla blie");
    stringstream ss(s);

    string token;
    while( ss >> token )
    {
        if( "\\" == token )
            break;
        else
            cout << "Token is: " << token << "\n";
    }
    return 0;
}

Будут ли tellg и seekg работать здесь до и условно после извлечения потока?

Спасибо!

1 Ответ

4 голосов
/ 04 декабря 2010

Сработают ли функции Tellg и seekg здесь до и условно после извлечения потока?

Да.

...