C ++:什么是流

我听说过流,更具体地说是文件流。

那是什么

它在内存中是否有位置?

它包含数据吗?

仅仅是文件和对象之间的连接吗?

任何帮助,将不胜感激

Mohamed Ahmed Nabil asked 2020-07-22T00:52:57Z
4个解决方案
46 votes

术语流是一种构造的抽象,它允许您发送或接收未知数量的字节。 隐喻是水流。 您可以获取数据,也可以根据需要发送。 例如,将此与具有固定的已知长度的数组进行对比。

使用流的示例包括读取和写入文件,通过外部连接接收或发送数据。 但是,术语“流”是通用的,对于具体的实现没有任何说明。

Jonathan Wood answered 2020-07-22T00:53:27Z
9 votes

IOStreams是用于定义输入和输出功能的前端接口(std::istreamstd::ostream)。 这些流还存储格式化选项,例如用于整数输出的基础,并保存std::locale对象以用于各种自定义。 它们最重要的组成部分是指向std::streambuf的指针,该指针定义了如何访问字符序列,例如文件,字符串,屏幕上的区域等。特别是对于文件和字符串,提供了特殊的流缓冲区,并且类派生自 提供了流基类以便于创建。 描述IOStreams库的全部功能几乎可以填满整本书:在C ++ 2003中,大约一半的库部分专用于流相关的功能。

Dietmar Kühl answered 2020-07-22T00:53:48Z
6 votes

流是线性队列,它将文件连接到程序并保持双向数据流。 这里的源是任何文件,I / O设备,硬盘,CD / DVD等。

基本上流是如果两个类型1.文本流2.二进制流

文本流:这是一个字符序列,排成一行,每行以换行符(unix)结尾。

Binary Stream:二进制流,它是在计算机主内存中进行内部编码的数据,未经任何修改。

Sandeep_black answered 2020-07-22T00:54:22Z
4 votes

文件系统旨在与各种设备一起使用,包括终端,磁盘驱动器,磁带驱动器等。即使每个设备都不相同,文件系统也会将每个设备转换为称为流的逻辑设备。 流是与设备无关的,因此可以使用相同的功能来写入磁盘文件和磁带文件。 在更专业的术语中,流提供了程序员和所使用的实际设备之间的抽象。

Farsan Rashid answered 2020-07-22T00:54:42Z
translate from https://stackoverflow.com:/questions/12145357/c-what-is-a-stream