【问题标题】:What is a 'Stream', relating to cin and cout?什么是与 cin 和 cout 相关的“流”?
【发布时间】:2009-08-18 00:12:24
【问题描述】:

一个教程正在讨论 cin 和 cout: “从语法上讲,这些流不用作函数:相反,数据被写入流或使用运算符>,称为提取运算符从它们中读取。”

什么是“流”?

【问题讨论】:

    标签: stream cout cin


    【解决方案1】:

    将“流”视为物理软管或管道。在一端,有人可能会倒一些水。在另一端,它会出来。这是对流的“读取”和“写入”。

    流只是数据传输的地方。它可以是“套接字流”(通过互联网)或“文件流”(到文件),或者可能是“内存流”,只是将数据写入内存中的位置(ram)。

    【讨论】:

    • 或者,在问题的上下文中,“控制台流”,其中“软管”的一端是键盘或屏幕。
    【解决方案2】:

    “流”是表示数据源或可以写入数据的位置的对象。

    示例包括文件句柄和管道——您可以从中读取数据或向其中写入数据的东西。

    流的一个重要特性是它们共享一个公共接口,因此相同的代码可以写入文件或管道(例如)而无需重写。

    【讨论】:

      【解决方案3】:

      您应该将流视为对底层数据“源”或“汇”的抽象。源是您从中读取数据的东西,而接收器是您向其中写入数据的东西。

      流的概念允许您在各种形式的媒体、网络连接、应用程序之间的管道、文件等上执行 I/O。

      流抽象对我们作为开发人员来说非常有价值,因为它使我们能够简化输入和输出,并让我们能够灵活地安排和重新连接这些流的源和目标。

      一个很好的比喻是软管。您可以通过软管发送和接收数据,并且可以将这些软管连接到各种事物。

      通过允许程序通过管道进行通信,我们允许各种程序相互通信,并且我们极大地提高了互操作性和实用性。

      这是 UNIX 哲学的核心,并且支持一些非常强大的编程习惯。

      【讨论】:

        猜你喜欢
        • 2011-12-07
        • 2013-12-02
        • 2011-01-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-18
        • 2017-06-02
        相关资源
        最近更新 更多