在 C++ 中创建 istream 和 ostream 对象

Create istream and ostream objects in C++

我读到 cout 和 cin 是 类 std::istream 和 std::ostream 的对象。可以有像 cout 和 cin 这样的用户定义对象吗?

例如。 我怎样才能做这样的事情:

     ostream obj;
     obj<<"string"<<endl;

编辑 1:我想定义一个可以复制 cout 和 cin 而不会弄乱它们的内置定义的对象。

要处理字符串,我建议使用 std::stringstream
std::stringstream class 派生自istream。

std::stringstream obj;

obj << "Hello World" << endl;
// You can convert it to a string afterwards
 std::string myString = obj.str();

是的,您可以创建任何您想要的流。

由于流是具有源和接收器的数据流,因此您通常希望使用以下任一方法:

  • std::stringstream - 自己添加数据,以流形式访问
  • std::{i,o}fstream - 数据来自/进入文件

std::coutstd::cin 是恰好分别连接到 STDOUT 和 STDIN 的流的特定实例,但没有理由不能创建自己的流。

您只需要准确了解您实际希望他们做什么。