教学内容学习情境导入C文件概述文件指针类型文件打开文件关闭文件字符输入输出函数学习情境导入在日常的程序设计中,我们经常要将程序的输出结果输出到某一文件中,或者从文件向程序读取数据,如何使用C语言来完成文件的读写呢写入读取C程序文件磁盘C文件概述文件(file):存储在外部介质上的数据的集合.
操作系统是以文件为单位对数据进行管理的.
在程序运行时,常常需要将一些数据输出到磁盘上存放起来,以后需要时再从磁盘中输入到计算机内存.
这就要用到磁盘文件.
windows下每个文件对应的四项参数:文件名、大小、类型、修改时间C语言把文件看作是一个字符(字节)的序列,即由一个一个字符(字节)的数据顺序组成.
根据数据的组织形式,可分为ASCII文件(文本文件)和二进制文件.
各类文件特点如int型数100000010011100010000内存存储形式0010011100010000二进制形式0011000100110000001100000011000000110000ASCII形式文本文件特点:存储量大、速度慢、便于对字符操作二进制文件特点:存储量小、速度快、便于存放中间结果文件结构体文件结构体FILE缓冲文件系统为每个正使用的文件在内存开辟文件信息区文件信息用系统定义的名为FILE的结构体描述FILE定义在stdio.
h中typedefstruct{int_fd;文件号int_cleft;//缓冲区中剩下的字符数int_mode;//文件操作方式char*_next;//文件当前读写位置char*_buff;//文件缓冲区位置}FILE;文件类型指针指针变量说明:FILE*fp;用法:文件打开时,系统自动建立文件结构体,并把指向它的指针返回来,程序通过这个指针获得文件信息,访问文件文件关闭后,它的文件结构体被释放文件名文件使用方式文件类型指针C程序操作系统磁盘文件的打开对文件读写之前应该"打开"该文件,在使用结束之后应"关闭"该文件.
ANSIC规定了标准输入输出函数库,用fopen()函数来实现打开文件.
调用方式为:FILE*fp;fp=fopen(文件名,使用文件方式);例如:fp=fopen("a1","r");在打开一个文件时,通知给编译系统以下3个信息:需要打开的文件名,也就是准备访问的文件的名字.
使用文件的方式("读"还是"写"等).
让哪一个指针变量指向被打开的文件.
文件的打开方式在文件末尾添加建立新文件读取/追加(二进制文件)"ab+"文件原有内容丢失建立新文件写入/读取(二进制文件)"wb+"正常打开出错读取/写入(二进制文件)"rb+"在文件末尾添加建立新文件读取/追加(文本文件)"a+"文件原有内容丢失建立新文件写入/读取(文本文件)"w+"正常打开出错读取/写入(文本文件)"r+"在文件末尾添加建立新文件追加(二进制文件)"ab"文件原有内容丢失建立新文件写入(二进制文件)"wb"正常打开出错读取(二进制文件)"rb"在文件末尾添加建立新文件追加(文本文件)"a"文件原有内容丢失建立新文件写入(文本文件)"w"正常打开正常打开读取(文本文件)"r"当指定文件存在当文件不存在含义mode文件打开出错原因如果不能实现"打开"的任务,fopen函数将会带回一个出错信息.
此时fopen函数将带回一个空指针值NULL.
出错的原因可能是:用"r"方式打开一个并不存在的文件;磁盘出故障;磁盘已满无法建立新文件等.
文件的关闭在使用完一个文件后应"关闭"该文件,以防止它再被误用.
"关闭"就是使文件指针变量不指向该文件,此后不能再通过该指针对原来与其相联系的文件进行读写操作.
ANSIC规定了标准输入输出函数库,用fclose()函数关闭文件.
调用方式为:fp=fclose(文件指针);例如:fclose(fp);在程序终止之前应关闭所有文件,否则将会丢失数据.
fclose函数带回一个值:当顺利地执行了关闭操作,则返回值为0;否则返回-1.
可以用ferror函数来测试.
PQ.hosting怎么样?PQ.hosting是一家俄罗斯商家,正规公司,主要提供KVM VPS和独立服务器,VPS数据中心有香港HE、俄罗斯莫斯科DataPro、乌克兰VOLIA、拉脱维亚、荷兰Serverius、摩尔多瓦Alexhost、德国等。部分配置有变化,同时开通Paypal付款。香港、乌克兰、德国、斯洛伐克、捷克等为NVMe硬盘。香港为HE线路,三网绕美(不太建议香港)。免费支持wi...
Hostodo发布了几款采用NVMe磁盘的促销套餐,从512MB内存起,最低年付14.99美元,基于KVM架构,开设在拉斯维加斯机房。这是一家成立于2014年的国外VPS主机商,主打低价VPS套餐且年付为主,基于OpenVZ和KVM架构,产品性能一般,数据中心目前在拉斯维加斯和迈阿密,支持使用PayPal或者支付宝等付款方式。下面列出几款NVMe硬盘套餐配置信息。CPU:1core内存:512MB...
ZJI是成立于2011年原Wordpress圈知名主机商—维翔主机,2018年9月更名为ZJI,主要提供香港、日本、美国独立服务器(自营/数据中心直营)租用及VDS、虚拟主机空间、域名注册业务。本月商家针对香港阿里云线路独立服务器提供月付立减270-400元优惠码,优惠后香港独立服务器(阿里云专线)E3或者E5 CPU,SSD硬盘,最低每月仅480元起。阿里一型CPU:Intel E5-2630L...