第14讲结构体、文件.ppt

上传人:本田雅阁 文档编号:2251142 上传时间:2019-03-11 格式:PPT 页数:19 大小:124.51KB
返回 下载 相关 举报
第14讲结构体、文件.ppt_第1页
第1页 / 共19页
第14讲结构体、文件.ppt_第2页
第2页 / 共19页
第14讲结构体、文件.ppt_第3页
第3页 / 共19页
亲,该文档总共19页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第14讲结构体、文件.ppt》由会员分享,可在线阅读,更多相关《第14讲结构体、文件.ppt(19页珍藏版)》请在三一文库上搜索。

1、1,期末考试相关,题型 读程序 (程序的运行结果或功能) 写程序 知识点 包括今天所讲内容在内的所有课堂上讲的内容,2,本讲内容,结构体 结构体类型定义的方法 结构体变量的引用 结构体数组 文件 文件的打开与关闭 文件的读写,3,1、结构体,基本数据类型 int、float、char 构造数据类型 数组(各元素属于同一类型) 但是很多时候,需要将不同类型的数据组成一个整体,以便于使用。这些组合在一个整体中的数据是相互联系的,如下图。,4,struct student int num; char name20; char sex; int age; float score; char addr3

2、0; ;,这样一种结构的定义:,struct 关键字 声明结构体类型时使用。它向系统声明这是一个“结构体类型”。 定义的一般形式 struct 结构体名 成员列表; 成员列表中各个成员在定义时都应该进行类型的声明 struct student 是一个类型名,它和基本数据类型int、float、char等一样,都可以用来定义变量。,5,1.1结构体变量的定义,步骤: 先定义结构体类型 再定义结构体变量, struct student int num; char name20; char sex; int age; float score; char addr30; ;, struct stude

3、nt stu1,stu2;,6,stu1、stu2变量,stu1和stu2都为struct student 类型的变量,即它们具有struct student 的结构,stu1,stu2,思考:这样结构的数据在内存中占多少个字节?,7,1.2结构体变量的引用,#include void main() struct student int num; char name20; char sex; int age; float score; char addr30; stu1;/结构体变量的定义 scanf(“%d,%s,%c,%d,%f,%s“, ,8,1.3结构体数组,一个结构体变量可以存放一组

4、数据(如学生的学号、姓名、成绩等数据),如果在应用的过程中需要50个学生的数据进行处理,显然要用数组,这就是结构体数组。 结构体数组的定义 先定义结构体类型 再定义结构体数组(与普通数组的定义相同),9,例:求3个学生各自成绩的平均分,并输出,/先定义结构体 #include struct student char num6; /学号 char name15; /姓名 int score2; /2门课成绩 float avr; /平均分 ;,10,void main() int i,j,sum; struct student stu3; /结构体数组,3个学生 for(i=0;i3;i+) p

5、rintf(“stuNo:“); scanf(“%s”, /求学生平均分 ,11,for(i=0;i3;i+) /输出各学生的信息 printf(“%s %s %d %d %d %fn“, stui.num, stui.name, stui.score0, stui.score1, stui.score2, stui.avr); ,12,1.4小节,关于结构体变量定义的方法详见11.2章节 关于结构体变量初始化的方法详见11.4章节 认真阅读教材11.111.5章节内容,13,2、文件(文件24学时不做要求,可自学) 2.1文件概述,文件(file) 一般指存储在外部介质上数据的集合 根据数据

6、的组织形式,文件可分为: ASCII文件(文本文件,.txt) 存放字符的ASCII码 二进制文件 存放字符的二进制编码 在此之前,所有的输入、输出都是以终端为对象,即从键盘输入,运行结果输出到终端 在应用的过程中,常需要将运行的结果(最终数据或中间数据)保存起来,以后需要时再读入内存。这就需要用到磁盘文件。,14,2.2文件类型指针,每个被使用的文件都在内存中占用一个区,用来存放文件的相关信息(如文件的名字、状态及文件的当前位置等)。这些信息都存放在一个结构体变量FILE中。详见P331 13.2 此结构体类型由系统定义; 通过文件指针变量能够找到与他相关的文件,从而进行文件的读写等操作。,

7、15,2.3文件的打开与关闭,文件的打开(fopen函数) 其调用方式通常为 FILE *fp fp=fopen(文件名,使用文件方式) 文件的关闭(fclose函数) fclose(文件指针) fclose(fp);,详见P333,16,2.4文件的读写,fputc函数 把一个字符写到文件上去 fgetc函数 从指定的文件读入一个字符 fread函数 从文件读一个数据块 fwrite函数 写一个数据块到文件 fscanf函数 fprintf函数 注意:各函数的使用格式详见教材13.4,fscanf、fprintf函数与scanf和printf相仿,都是格式化读写函数,只是对象不同,前者为文件

8、,后者为终端,17,2.5文件读写举例,#include /将一组数据写入temp.txt文件中 void main() FILE *fp; /定义文件指针 int i,score10=90,3,40,50,20,100,98,34,70,85; if(fp=fopen(“temp.txt”,“w+”)=NULL) /文件打开成功如否判断 printf(“errorn“);exit(0); for(i=0;i10;i+) fprintf(fp,“%d ”,scorei);/将数据输出到文件中 fclose(fp); /关闭文件 ,18,补充:宏定义 P204 9.1,不带参数宏定义 #define 标示符 字符串 用一个指定的标示符来代表一个字符串。 e.g. #define PI 3.14.159 带参数的宏定义 #define 宏名(参数表)字符串 e.g. #define S(a,b) a*b area=S(3,2);则area=6; 思考:#define N 3 #define Y(n) (2*N+1*n) z=2 *(N*Y(3+1); 则z=?,19,P348 13.4 13.6,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1