c语言文件流函数 c语言文件流是什么( 四 )


fclose(fp);
return 0;
}
C语言中流是什么意思?C语言的I/O系统为用户提供了一个接口,该接口与实际的存取设备无关 。只是设备的一个抽象表示形式 。这个抽象的接口称为流,实际的设备称为文件 。
C文件系统可以与各种设备一起使用,如打印机、硬盘、终端等,缓冲文件系统可以将每个设备转换成逻辑设备,即所谓的流 。所有的流工作方式类似,所以很容易操作不同的设备 。流有2种类型:文本流和二进制流 。
文本流是一系列字符,可以由多行构成,每行由一个换行符终止 。
二进制流是一系列字节,并与外部设备上的字节一一对应 。
在c语言中“stream”是什么函数?stream是文件流
流是程序输入或输出的一个连续的字节序列,设备(例如鼠标、键盘、磁盘、屏幕、调制解调器和打印机)的输入和输出都是用流来处理的 。在C语言中,所有的流均以文件的形式出现----不一定是物理磁盘文件,还可以是对应于某个输入/输出源的逻辑文件 。C语言提供了5种标准的流,你的程序在任何时候都可以使用它们,并且不必打开或关闭它们 。以下列出了这5种标准的流 。
------------------------------------------------
名称描述例子
------------------------------------------------
stdin标准输入键盘
stdout标准输出屏幕
stderr标准错误屏幕
stdprn标准打印机LPT1端口
stdaux标准串行设备COM1端口
------------------------------------------------
需要注意的是,stdprn和stdaux并不总是预先定义好的,因为LPT1和COM1端口在某些操作系统中是没有意义的,而stdin,stdout和stderr总是预先定义好的 。此外 , stdin并不一定来自键盘,stdout也并不一定显示在屏幕上 , 它们都可以重定向到磁盘文件或其它设备上 。
C语言getc()函数是用来获得文件流的一个一个字符 , 字符是一个字节为什么可以把中文给读出来??这个问题 。比较复杂 。
简单的说一下吧 。
第一个:汉字的编码是有好几种的 。UTF-8,UNICODE之类的 。所有的汉字编码都不止一个字节 。
有的编码汉字是用2个字节表示的 。有的更多 。
有的编码方式中汉字的字节数甚至不固定 。有的汉字字节2个 , 有的3个4个 。
你能读取出来的主要原因是因为读取到固定的几个字节后,系统会翻译一下显示出汉字 。
比如读取的是一种编码是2个字节的汉字 。系统读取2个字节后会翻译 , 显示在控制台上 。
大概就是这个意思 。如果要深入了解的话,那就必须要你自己去学了 。
c语言中的fgets函数 。fgets()函数用于从文件流中读取一行或指定个数的字符,其原型为:
char
*
fgets(char
*
string,
int
size,
【c语言文件流函数 c语言文件流是什么】FILE
*
stream);
参数说明:
string为一个字符数组 , 用来保存读取到的字符 。
size为要读取的字符的个数 。如果该行字符数大于size-1,则读到
size-1
个字符时结束,并在最后补充'
\0';如果该行字符数小于等于
size-1,则读取所有字符,并在最后补充
'\0' 。即,每次最多读取
size-1
个字符 。
stream为文件流指针 。
【返回值】读取成功,返回读取到的字符串,即string;失败或读到文件结尾返回NULL 。因此我们不能直接通过fgets()的返回值来判断函数是否是出错而终止的,应该借助feof()函数或者ferror()函数来判断 。
注意:fgets()与gets()不一样,不仅仅是因为gets()函数只有一个参数

推荐阅读