版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 C语言程序设计,文件,掌握对文件指针的定义方法。 掌握文件打开和关闭的操作方法。 掌握常用文件输入输出函数的用法。 掌握文件读写函数的用法。,目标要求,文件的概念,文件:存储在外部介质上数据的集合,是操作系统数据管理的单位。 使用数据文件的目的 1、数据文件的改动不引起程序的改动程序与数据分离 2、不同程序可以访问同一数据文件中的数据数据共享 3、能长期保存程序运行的中间数据或结果数据,文件,文件分类 按数据的组织形式: 文本文件: ASCII文件,每个字节存放一个字符的ASCII码 二进制文件:数据按其在内存中的存储形式原样存放,文件,文件的概念,如 int型数1234,00000100
2、11010010,二进制形式,00110001 00110010 00110011 00110100,ASCII形式,二进制文件特点: 存储量小、速度快、便于存放中间结果,文本文件特点: 存储量大、速度慢、便于对字符操作,文件,文件的概念,文件处理方法 缓冲文件系统:高级文件系统,文件缓冲区由操作系统在打开文件时自动开辟;,文件,文件类型指针,文件类型是一个结构体类型,它的类型定义包含在stdio.h文件中。 定义如下:,typedef struct short level; (缓冲区满/空的程度) unsigned flags; (文件状态标志) char fd; (文件描述符) unsig
3、ned char hold; (若无缓冲区则不读字符) short bsize; (缓冲区大小) unsigned char *buffer; (数据缓冲区的位置) unsigned char *curp; (当前指针) unsigned istemp; (临时文件标志) short token; (用于有效性检查) FILE;,文件,文件类型指针,指针变量说明: FILE *fp; 用法: 文件打开时,系统自动建立文件结构体,并把指向它的指针返回来,程序通过这个指针获得文件信息,访问文件 文件关闭后,它的文件结构体被释放,文件,文件的打开、关闭与检测函数,C文件操作用库函数实现,包含在std
4、io.h 文件使用方式:打开文件-文件读/写-关闭文件 打开文件fopen 函数原型: FILE *fopen(char *name,char *mode),要打开的文件名,使用文件方式,例:以文本方式打开文件名为student.dat的文件, 将要往文件中写入数据。 FILE *fp; fp=fopen(student.dat,w);,例:以二进制方式打开新文件score.dat,打开该文件后,既可以向该文件中写入数据,也可以从该文件中读取数据。 FILE *fp; fp=fopen(score.dat,wb+); ;,文件,文件的打开、关闭与检测函数,文件关闭fclose 作用:使文件指针
5、变量与文件“脱钩”,释放文件结构体和文件指针 函数原型:int fclose(FILE *fp),功能:关闭fp指向的文件 返值:正常关闭为0;出错时,非0,文件打开时返回的文件类型指针,文件,文件的打开、关闭与检测函数,不关闭文件可能会丢失数据,文件,文件的读写操作函数,fprintf函数和fscanf函数 fprintf 函数原型: fprintf(FILE *fp,char format,args,.),指向要操作的文件,指出数据的格式,要向文件中写入的数据,fscanf 函数原型: fscanf(FILE *fp,char format,args,.) 功能:从文件中读取一个指定格式的
6、数据。,功能:将数据以一定格式写到文件中 。,文件,文件的读写操作函数,例 :使用fprintf函数建立文件的简单举例,#include main() FILE *fp; int i; fp=fopen(number.txt,w); if (fp=NULL) printf(打开文件number.txt失败n); exit(0); ,for (i=1;i=100;i+) fprintf(fp,%4d,i); fclose(fp); ,文件,文件的读写操作函数,例 :将上一例建立的文件用fscanf函数读出,并在屏幕显示出来。,#include main() FILE *fp; int i,k;
7、fp=fopen(number.txt,r); if ( fp=NULL) printf(打开文件number.txt失败n); exit(0); ,for (i=1;i=100;i+) fscanf(fp,%d, ,位运算,位运算是指对二进制位进行的运算。每个二进制位中只能存放0或1。因此,位运算就是对二进制数的运算。通常,将一个数据用二进制数表示后,最右边的二进制位称为最低位(第0位),最左边的二进制位为最高位。,位运算,在C语言中共提供了6种位运算符,,在这6种位运算符中,其中按位取反是单目运算符,只有一个运算对象,其他均为双目运算符,有两个运算对象。 位运算的运算对象只能是整型(包括i
8、nt,short,long和unsigned)或字符型数据,而不能是实型数据。 各位运算符的优先级比较分散,与其他运算符一起,其优先级从高到低如下: 逻辑非(!)按位取反()算术运算符左移运算符()关系运算符按位与运算符(&),按位异或运算符(),按位或运算符(|)&与| 赋值运算符,“求反”运算符 (),规则 对参与运算的数的各二进位按位求反,它是单目运算符,具有右结合性。即:0=1;1=0。 例如:9的运算为 0000000000001001 1111111111110110,“左移”运算符(),规则 把“”左边的运算数的各二进位全部左移若干位,由“”右边的数指定移动的位数,高位丢弃,低位
9、补0,它是双目运算符。 左移1位相当于该数乘以2;左移n位相当于该数乘以2n 。,“右移”运算符(),规则 把“”左边的运算数的各二进位全部右移若干位,“”右边的数指定移动的位数。 右移1位相当于该数除以2;右移n位相当于该数除以2n。,“按位与”运算符(&),规则: 参与运算的两数(以补码方式出现)各对应的二进位相与(即逻辑乘,它是双目运算符。即:0&0=0;0&1=0;1&0=0;1&1=1。 9&5可写算式如下: 9的二进制: 0 0 0 0 1 0 0 1 5的二进制: & 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1(1的二进制) 可见9&5=1。,“按位与”运算符(&),特殊用途: 清零 按位与运算通常用来对某些位清0。,“按位或”运算符(|),规则 参与运算的两数(以补码出现)各对应的二进位相或(即逻辑加)。它是双目运算符。即:0|0=0;0|1=1;1|0=1;1|1=1。 例如:9|5可写算式如下: 0 0 0 0 1 0 0 1 | 0 0 0 0 0 1 0 1 0 0 0 0 1 1 0 1 (十进制为13) 可见9|5=13。,“按位或”运算符(|),特殊用途 将一个数据的某些指定的位置为1,“按位异或”运算符(),规则 参与运算的两数(以补码出现)各对应的二进位相异或,当两对应的二进位相异时,结果为1,它是双目运算符。即
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新进员工质量意识培训
- 信用社人力资源新工培训
- 数控车削加工技术 课件 项目二 制定数控车削工艺
- 山东省淄博市第一中学2024-2025学年高三上学期期中考试语文试卷含答案
- T-YNZYC 0079-2023 绿色药材 蜘蛛香栽培技术规程
- T-YNRZ 025-2024 瓜类蔬菜育苗技术规程
- 广西桂林市永福县2024-2025学年上学期八年级数学期中考试卷(无答案)
- 区域经济发展
- 高考历史二轮复习通史版选修四中外历史人物评说课
- 2024年山东省临沂市中考英语试题含解析
- 人教版七年级数学上册期中测试卷-附带有答案
- DB3714-T 0004-2021 肉种鸭强制换羽技术规程
- 《智能建造导论》 课件全套 刘占省 第1-12章 智能建造的兴起-中国智能建造之路
- 树立信心主题班会课件1
- 临床医学中的病患随访与健康教育
- 量子天线技术初探
- 山东省济南市2023-2024学年三年级上学期期中数学试卷
- 2023~2024学年度上期高中2022级期中联考数学参考答案及评分标准
- 全国优质课一等奖高中物理必修一《曲线运动》课件
- 初一年级班级日志记载表(详)
- 小学道德与法治-10《吃饭有讲究》教学设计学情分析教材分析课后反思
评论
0/150
提交评论