教学内容学习情境导入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函数来测试.
百纵科技怎么样?百纵科技国人商家,ISP ICP 电信增值许可证的正规公司,近期上线美国C3机房洛杉矶独立服务器,大带宽/高配置多ip站群服务器。百纵科技拥有专业技术售后团队,机器支持自动化,自助安装系统 重启,开机交付时间 30分钟内交付!美国洛杉矶高防服务器配置特点: 硬件配置高 线路稳定 洛杉矶C3机房等级T4 平价销售,支持免费测试,美国独服适合做站,满意付款。点击进入:百纵科技官方网站地...
速云怎么样?速云,国人商家,提供广州移动、深圳移动、广州茂名联通、香港hkt等VDS和独立服务器。现在暑期限时特惠,力度大。广州移动/深圳移动/广东联通/香港HKT等9折优惠,最低月付9元;暑期特惠,带宽、流量翻倍,深港mplc免费试用!点击进入:速云官方网站地址速云优惠码:全场9折优惠码:summer速云优惠活动:活动期间,所有地区所有配置可享受9折优惠,深圳/广州地区流量计费VDS可选择流量翻...
Friendhosting发布了今年黑色星期五促销活动,针对全场VDS主机提供45折优惠码,虚拟主机4折,老用户续费可获9折加送1个月使用时长,优惠后VDS最低仅€14.53/年起,商家支持PayPal、信用卡、支付宝等付款方式。这是一家成立于2009年的老牌保加利亚主机商,提供的产品包括虚拟主机、VPS/VDS和独立服务器租用等,数据中心可选美国、保加利亚、乌克兰、荷兰、拉脱维亚、捷克、瑞士和波...