【问题标题】:Create istream and ostream objects in C++在 C++ 中创建 istream 和 ostream 对象
【发布时间】:2015-09-18 20:31:14
【问题描述】:

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

例如。 我该怎么做这样的事情:

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

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

【问题讨论】:

  • 所以你只想引用它们......?如果不是这样,请详细说明。
  • 很不清楚你在问什么。这些新流与cincout 究竟有何不同? “不弄乱它们的内置定义”是什么意思?

标签: c++ object iostream ostream


【解决方案1】:

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

std::stringstream obj;

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

【讨论】:

    【解决方案2】:

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

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

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

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

    你只需要准确和了解你真正希望他们做什么。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-07
      • 1970-01-01
      • 2021-01-12
      • 1970-01-01
      • 2020-02-10
      • 2018-04-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多