欢迎来到天天文库
浏览记录
ID:44374594
大小:249.50 KB
页数:19页
时间:2019-10-21
《哈工大_C语言07_IO》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、C程序设计语言第7章I/OI/O设备输入设备键盘、鼠标软盘、硬盘、光驱(以文件的形式)串行口、并行口、USB接口、IEEE1394口、网络端口扫描仪、视频采集卡、电视卡、游戏杆、话筒……输出设备显示器、打印机软盘、硬盘、CD-R/DVD-R(以文件的形式)串行口、并行口、USB接口、IEEE1394口、网络端口音箱……单纯的输入设备或者单纯的输出设备越来越少标准输入输出字符界面的操作系统一般都提供标准输入与输出设备DOS、Linux、Unix……一般情况,标准输入就是键盘,标准输出就是终端显示器操作系统有能力重定向标准输入与
2、输出,比如让文件作为标准输入,打印机作为标准输出这种重定向程序本身是感觉不到的自来水厂DOS下的标准输入输出重定向程序prog如下main(){charc;while((c=getchar())!='')putchar(++c);}输入重定向progoutfile格式化输出——printfintprintf(constchar*format,参数1,参数2,…);参数format是用来控制格式的字符串具体格式请见教材P130、P214常用转换字符:%d、%c、%s、%.2f、%u、
3、%ld返回值是最后输出的字符串长度,出错返回EOFprintf并不对参数的类型及个数进行检查,所以一定要确切地把参数和前面的转换字符匹配好这种参数形式不仅在C语言里应用广泛,很多其它语言、类库也对此进行了模仿、扩充相似的库函数sprintf、fprintf格式化输入——scanfintscanf(constchar*format,参数1,参数2,…);参数format是用来控制格式的字符串具体格式请见教材P133、P216,与printf基本相同,但更简单常用转换字符:%d、%c、%s、%f、%u、%ld返回值是成功匹配的
4、输入项的个数,遇到结尾返回EOF所有参数必须是指针,且类型要与前面的转换字符匹配好相似的库函数sscanf、fscanf因为其不安全,所以已经很少使用文件(File)不能仅依靠操作系统的输入输出重定向来进行文件访问,我们必须有能力主动访问文件磁盘、光盘等能大量、永久保存信息的媒介,一般都以文件的形式给最终用户及应用程序使用可以建立若干目录(文件夹),在目录里保存文件或者下级子目录。同目录下的文件不能同名对我们目前而言,只要知道文件的路径(全目录)和文件名,就能使用该文件这都是托OS的福流(Stream)“子在川上曰:逝者如斯
5、夫”涓涓的、潺潺的、浩瀚的、奔腾的水从我们面前流过。每一个水分子出现在我们眼中。你或许会记下她的样子,但她将永远不再出现计算机中也有流的概念,一般称为数据流,也有叫做字节流、比特流的,还有很具体的文件流、视频流、音频流等流处理基本方法是:读入当前流到输入的数据,处理,然后再读后续流入的数据,处理。输出流处理也大抵如此计算机对流的控制能力很强,一般不仅可以控制流速,甚至还可以让流回流文件访问文件访问的基本模式open:打开文件,获得对此文件的指针、引用和句柄等,以证明可以使用此文件read:读文件。参数一般指明要读多少字节,
6、读到哪块内存。每次调用此功能,都是接着上次调用的结束位置读。(所以是个输入流)write:写文件。参数一般指明把哪块内存的内容写入文件,要写多少字节。每次调用此功能,都是接着上次调用的结束位置写。(所以是个输出流)close:关闭文件,表明操作结束,不再使用此文件。文件使用完毕必须关闭,否则影响系统性能seek:随机控制流的当前位置C语言中的文件访问下面介绍的函数均定义在中intopen(constchar*pathname,intaccess);intfd=open("C:\CONFIG.SYS",O_RD
7、WR
8、O_CREAT);filename是文件名,包含路径。如果不含路径,表示打开当前目录下的文件access是打开方式,常用为O_RDONLY、O_WRONLY、O_RDWR与O_CREAT、O_TRUNC、O_APPEND的或运算返回值为文件句柄,留待以后使用。如果打开失败,返回值为-1C语言中的文件访问intread(inthandle,void*buf,unsignedlen);intn_read=read(fd,buf,BUFSIZ);handle是open获得的文件句柄buf是保存读入内容的内存指针len是最大可
9、以读入的字节数返回值为实际读入的字节数,可能大于len。返回0表示读到了末尾,返回-1表示出错C语言中的文件访问intwrite(inthandle,constvoid*buf,unsignednbyte);intn_write=write(fd,buf,BUFSIZ);handle是o
此文档下载收益归作者所有