5个回答
展开全部
版本四
流 原从stream翻译来。
什么电脑外设控制,磁盘文件输入输出,只要是输入或者输出所产生的数据都是流。
从linux对于硬件设备的控制很容易看出,对于硬件和磁盘上的文件,C语言的操作方法基本上一样。linux中C语言也是把硬件当做文件进行操作。(本质上,它把外设与txt文本文件看成一类东西。)流的概念的提出,我认为是为了程序对于文本和硬件的一系列操作而设定的统一标准。从程序员角度来看,就不需要知道各个操作的细节,编程的时候,统一把外设都当成文件进行操作就OK了。比如对于声卡,先OPEN打开,然后write写入,就完成喇叭发声,然后close关闭。和对于文本操作基本一样。
不管对设备或是文件(广义上都是文件)的输入输出操作,而产生的数据,都是I/O流。而C语言中的I/O流能分为两种:文本流,二进制流。很容易看出文本流控制很二进制流控制的区别。你用TC,fopen打开一个MP3或者别的32位文件,然后读取,会发现用文本流打开后,文件只能读到开头一点点。因为32位音乐文件有很多的'00'数据,文本流会把它当做文件结束符而结束读取。而二进制流打开方式则可以从头读到尾。(这时候输出的时候可能存在点问题,实验的时候可以用二进制 流方式再写入到另外一个文件来观察。)
流是由输入输出产生的,是用于数据交换或转换的统一的标准(特指这一类的数据)。C++和一些编程语言中定义的流(stream)类,就是对这类数据的定义。并通过成员函数对“流”进行操作。这样,用户和程序,程序和外设之间都是通过“流”进行交互。而程序员不需要知道“流”的底层到底是怎么实现的。 就好像吃饭和排泄。数据流中定义了,先牙齿咀嚼,然后胃部消化,然后小肠吸收,然后大肠发酵,然后你懂的。你只需要CIN,还有COUT,就能控制吃喝拉撒。你管它是细嚼还是狼吞?你管它便秘还是拉肚子?吞吐量是电脑性能的事。你管它是先进小肠还是先进胃?底层是内核的事。你只需要拥有了CIN和COUT,你就拥有了一切。
从广义上来说,流也是文件,不同于txt文本类的文件(流属于数据,数据等同于文件)。你可以对流进行各种操作。缓冲区的定义,也是为了对流的操作。
综上,我们知道了,流是数据,流是标准,流是文件。流的作用我们知道了,那么“流”到底是个什么玩意呢?非常同意 448634095 所说的。用着用着自己就知道是什么玩意了。就好像刚开始学编程 闹不明白函数 是个啥意思,和数学上的函数一点也不一样。你现在知道整形是什么了吧?你能不能给我举个简单的列子给我解释下整形是什么?
注意:流和 输入输出的缓冲区是两个概念。
流 原从stream翻译来。
什么电脑外设控制,磁盘文件输入输出,只要是输入或者输出所产生的数据都是流。
从linux对于硬件设备的控制很容易看出,对于硬件和磁盘上的文件,C语言的操作方法基本上一样。linux中C语言也是把硬件当做文件进行操作。(本质上,它把外设与txt文本文件看成一类东西。)流的概念的提出,我认为是为了程序对于文本和硬件的一系列操作而设定的统一标准。从程序员角度来看,就不需要知道各个操作的细节,编程的时候,统一把外设都当成文件进行操作就OK了。比如对于声卡,先OPEN打开,然后write写入,就完成喇叭发声,然后close关闭。和对于文本操作基本一样。
不管对设备或是文件(广义上都是文件)的输入输出操作,而产生的数据,都是I/O流。而C语言中的I/O流能分为两种:文本流,二进制流。很容易看出文本流控制很二进制流控制的区别。你用TC,fopen打开一个MP3或者别的32位文件,然后读取,会发现用文本流打开后,文件只能读到开头一点点。因为32位音乐文件有很多的'00'数据,文本流会把它当做文件结束符而结束读取。而二进制流打开方式则可以从头读到尾。(这时候输出的时候可能存在点问题,实验的时候可以用二进制 流方式再写入到另外一个文件来观察。)
流是由输入输出产生的,是用于数据交换或转换的统一的标准(特指这一类的数据)。C++和一些编程语言中定义的流(stream)类,就是对这类数据的定义。并通过成员函数对“流”进行操作。这样,用户和程序,程序和外设之间都是通过“流”进行交互。而程序员不需要知道“流”的底层到底是怎么实现的。 就好像吃饭和排泄。数据流中定义了,先牙齿咀嚼,然后胃部消化,然后小肠吸收,然后大肠发酵,然后你懂的。你只需要CIN,还有COUT,就能控制吃喝拉撒。你管它是细嚼还是狼吞?你管它便秘还是拉肚子?吞吐量是电脑性能的事。你管它是先进小肠还是先进胃?底层是内核的事。你只需要拥有了CIN和COUT,你就拥有了一切。
从广义上来说,流也是文件,不同于txt文本类的文件(流属于数据,数据等同于文件)。你可以对流进行各种操作。缓冲区的定义,也是为了对流的操作。
综上,我们知道了,流是数据,流是标准,流是文件。流的作用我们知道了,那么“流”到底是个什么玩意呢?非常同意 448634095 所说的。用着用着自己就知道是什么玩意了。就好像刚开始学编程 闹不明白函数 是个啥意思,和数学上的函数一点也不一样。你现在知道整形是什么了吧?你能不能给我举个简单的列子给我解释下整形是什么?
注意:流和 输入输出的缓冲区是两个概念。
展开全部
指的就是c语言中的数据或文件 比如清除文件流函数 int fflush(file *stream)中的file 参数就是就是文件流
另外在C语言中,在程序开始运行时,系统自动打开3个标准文件:标准输入、
标准输出、标准出错输出。通常这3个文件都与终端相联系。因此,以前我们所用到的从终端输入或输出都不需要打开终端文件。系统自定义了3个文件指针
stdin、stdout、stderr,分别指向终端输入、终端输出和标准出错输出(也从终端输出)。
标准输入流:stdin
标准输出流:stdout
标准错误输出流:stderr
这三个也属于特殊的文件流
所以fflush(file *stream)也可以这样写 fflush(stdin)清除标准输入流 fflush(stdout)清除标准输出流
fflush(stdeer)清除标准错误流
另外在C语言中,在程序开始运行时,系统自动打开3个标准文件:标准输入、
标准输出、标准出错输出。通常这3个文件都与终端相联系。因此,以前我们所用到的从终端输入或输出都不需要打开终端文件。系统自定义了3个文件指针
stdin、stdout、stderr,分别指向终端输入、终端输出和标准出错输出(也从终端输出)。
标准输入流:stdin
标准输出流:stdout
标准错误输出流:stderr
这三个也属于特殊的文件流
所以fflush(file *stream)也可以这样写 fflush(stdin)清除标准输入流 fflush(stdout)清除标准输出流
fflush(stdeer)清除标准错误流
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
流指一个字符序列嘛。比如我在标准输入中输入了一个字符串,它会以流的形式存储,你可以对这个流进行一些操作。
更多追问追答
追问
我这么理解,流是程序和设备(也叫文件吧)之间的数据输入输出形式。是不是这样呢
追答
对。流起到一个缓冲的作用,它是外部与程序进行数据交换的纽带。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
就是如同带状的数据。只有前后,没有左右。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
其实只是一个名字而已,没什么神秘的。就像你的名字一样。只不过第一次遇到就比较好奇而已,用久了就习惯了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询