实现简单的输入流

| 我想编写一个简单的“ 0”对象,它将简单地转换另一个“ 0”。 我只想实现
readline
(它将从原始流中读取一行,对其进行处理,然后返回处理后的行),并具有一些通用代码,使upon3ѭ可以使用我的读取行,对其进行缓存并提供所需的数量个字节作为输出。 有没有可以让我这样做的课程? 例如
struct mystream : istreamByReadLine {
  istream& s;
  mystream(istream& _s):s(_s){}
  virtual string getline() {
    string line;
    getline(s,line);
    f(line);
    return line;
  }
}

class istreamByReadLine : istream {
  ... // implementing everything needed to be istream compatible, using my
  ... // getline() virtual method
}
    
已邀请:
您是否看过boost.iostreams?它为您完成了大多数繁琐的工作(可能不是针对您的确切用例,而是通常针对C ++标准库流)。     
您确定这是要走的路吗?在类似情况下, 都定义了一个类(例如
Line
),并带有
>>
运算符 做了我想要的,然后阅读,例如:
Line line
while ( source >> line ) ...
该类本身可以非常简单,只需just8 成员和一个
operator std::string() const
函数 返回它。所有过滤工作都将在
std::istream& operator>>( std::istream&, Line& dest )
功能。或者我已经在 一般
streambuf
; Boost iostream对 这个。     

要回复问题请先登录注册