字符串流::运营商GT;>只读,而不是从流中提取下一个标记

时间:2010-12-04 19:18:20

标签: c++ stringstream

如何在不将其从流中删除的情况下,只读取第一个新的“令牌”(标准的非空白字符序列,由运算符>>精心提取)?我可以提取字符串,检查是否需要放回,并重置内部流迭代器?我认为这可能有效,但不知道如何实现它......

示例:

#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;
}

tellgseekg是否会在流提取之前和有条件地在此处工作?

谢谢!

1 个答案:

答案 0 :(得分:4)

  

在流提取之前和有条件地在此处进行告知和搜索是否有效?