2010-12-04 43 views
4

如何才能读取第一个新的“标记”(标准非空白字符序列,由操作符>>精确提取)流?我可以提取字符串,检查是否需要放回,并重置内部流迭代器?我想这可能工作,但不知道如何实现它?stringstream :: operator >>只能读取,不能从流中提取下一个标记

例子:

#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工作前和流提取后有条件地?

谢谢!

回答

4

tellg和seekg会在提取流之前有条件地工作吗?

是的。

+0

所有,正确,实施,它的工作原理。 Dang,C++功能强大:D。感谢您的信任。如果任何人想要实现,请请求一个简化的例子(我的代码是相当以类为中心的,这意味着所有变量都非常离散化,所以我不能复制粘贴代码。 – rubenvb 2010-12-04 20:11:25