如何编写和使用C ++方法从任何流写入/读取?

时间:2014-08-21 18:31:50

标签: c++ stream

我必须用一种方法编写类来从任何流中读取数据(cin,ifstream等等),然后写入任何流。我需要这样的东西:

void save(std::ostream &stream);

但不知道如何强制使用它。

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

在实现任何内容之前,您应确定用于存储和加载文件中数据成员的结构,布局或协议。

以下是一个例子:

struct MyClass
{
  void load_from_stream(std::istream& inp)
  {
    inp >> first_value;
    inp >> second_value;
  }
  unsigned int first_value;
  double second_value;
};

该方法将接受来自std::istream的任何对象,例如std::cinstd::ifstream

用法:

  MyClass  m;
  m.load_from_stream(cin);

同样,对于std::ostream和保存。