我经常看到人们使用术语流,但我从来没有完全明白这意味着什么。标准是什么意思?只是意味着从终端和输出到终端的输入? stderr怎么样?我们什么时候需要使用它以及它有什么效果?
其次,我们可以创建自己的流吗?为什么我们需要创建它?
答案 0 :(得分:2)
在type theory中,流只是一个无限的数据列表。
然而,在C or C++中,它通常被认为是无限源或无限接收器。当然,无限大多数时候实际上是一个谎言,但它是一个有用的抽象,因为它强调大小是未知的。
我认为术语source
和sink
更有用。您可以将stderr
视为角色的接收器。从程序的角度来看,它毕竟是消耗角色而没有任何明显效果的东西。
您当然可以同时创建流(源或接收器或两者)。
答案 1 :(得分:1)
我经常看到人们使用术语“流”,但我从未明白其含义
C ++提供以下类来执行文件的输出和输入:
ofstream: Stream class to write on files
ifstream: Stream class to read from files
fstream : Stream class to both read and write from/to files.
我总是认为stream就像文件句柄一样,我们可以对文件执行操作。
标准是什么意思?
在C ++中,C ++标准库是类和的集合 功能
C ++标准库为任务提供了几种日常功能 例如找到数字的平方根。
C ++标准库的功能在std.int中声明 命名空间。
stderr怎么样?
标准错误流是错误消息和其他诊断警告的默认目标。与stdout一样,它通常也指向标准控制台的输出设备。
还可以使用freopen函数将stderr重定向到程序中的某个其他目标。
其次,我们可以创建自己的流吗?为什么我们需要创建它?
This会指导你
答案 2 :(得分:1)
stream是从std::ios_base派生的类。与随机访问相比,它们一个接一个地呈现元素。您可以通过调用相应的构造函数来创建一个。如果您想实现自己的流,请从ios_base派生并相应地实现所有方法。