《C语言程序设计教程》课件-第10章

合集下载

C语言从入门到精通 第10章ppt课件

C语言从入门到精通 第10章ppt课件
enum color c1, c2;
或enum color {red,yellow,blue,white,black} c1,c2;
或enum {red, yellow, blue, white, black} c1,c2;
➢枚举类型数据可以进行赋值运算。枚举类型是有序 类型, 枚举类型数据还可以进行关系运算。枚举类型 数据的比较转化成对序号进行比较, 只有同一种枚举 类型的数据才能进行比较。
在定义枚举类型时,程序员可在枚举数据时通过“=”号 自己规定序号,并影响后面的枚举数据的序号,后继序号以此 递增。例如:
enum status {copy=6, delete};
则copy的序号为6, delete的序号为7。 最新课件
上一页下24 一页
第10章 共用体与枚举类型
2. 枚举类型变量的定义 (1) 先定义枚举类型, 再定义枚举类型变量: enum 标识符 {枚举数据表}; enum 标识符 变量表; (2) 在定义枚举类型的同时定义枚举类型变量:
union icf {int i; char c; float f; };
最新课件
上一页下3 一页
第10章 共用体与枚举类型
2 共用体变量的定义 (1) 先定义共用体类型, 再定义共用体变量: ① union {成员表}; ② union 共用体名 变量表;
例如:union data { int i; char ch; float f; }; union data a最,新b课,c件;
最新课件
上一页下21 一页
第10章 共用体与枚举类型
例如
(1) 定义枚举类型status, 包含复制与删除两种状态: enum status {copy, delete}; 枚举类型status仅有两个数据,一个是copy,一

C语言程序设计教程课件第10章

C语言程序设计教程课件第10章

k。
如果是循环右移,则先将m右移n位(即将原数的高k- n位移到低位),再将m左移k-n位(即将原数的低n位移到 高位),然后将它们作按位或运算(即将它们合并)。 如果是循环左移,则先将m左移n位(即将原数的低k- n位移到高位),再将m右移k-n位(即将原数的高n位移到 低位),然后将它们作按位或运算(即将它们合并)。
(5)位段可以在一般的表达式中被引用,并被自动转 换为相应的整数。
10.3 程序举例
例10.3 编写一个C程序,其功能是:从键盘输入一个
无符号整数m以及位移位数n,当n>0时,将m循环右 移n位;当n<0时,将m循环左移|n|位。
将一个无符号整数m循环移n位的方法如下: 首先用sizeof函数确定一个无符号整数所占的二进制位数
3.“按位异或”运算符(^) “按位异或”的运算符为“^” 。其运算规则是:若两个 运算对象的对应二进制位不相等,则结果的对应位是1,否 则为0。 “按位异或”运算具有以下几个性质: (1)使数据中的某些位取反,即将0变为1,1变为0。 (2)同一个数据进行异或运算后,其结果为0。利用异或 运算的这个性质,可以将变量清零。 (3)可以实现交换两个变量的值:
6.“右移”运算符(>>)
“右移”运算符为“>>”。其运算规则是:将运算对象中 的每个二进制位向右移动若干位,从右边移出去的低位部分 被丢弃。但左边空出的高位部分是补0还是补1,要视下列具 体情况而定: 若右移对象为无符号整型数,则右移后左边空出的高位 部分补0。 若右移对象为一般整型数或字符型数据,当该数据的最 高位为0(对于一般整型来说即为正数),则右移后左边空 出的高位部分补0。当该数据的最高位为1(对于一般整型来 说即为正数),则与使用的计算机系统有关,有的计算机系 统将右移后左边空出的高位部分补1,称为“算术右移”; 有的计算机系统将右移后左边空出的高位部分补0,称为“ 逻辑右移”。

谭浩强C语言程序设计课件完整版第10章

谭浩强C语言程序设计课件完整版第10章

10.3文件的读写
fputc(c,fp2); fclose(fp1); fclose(fp2); } system("cls"); printf("abc.txt:\n"); system("type abc.txt"); printf("\n\nxyz.txt:\n"); system("type xyz.txt"); */ } 运行结果如下:
10.2文件的打开与关闭
即先检查打开的操作有否出错,如果有错就在终端上输出 “cannot open this file”。Exit函数的作用是关闭所有文件,终 止正在调用的过程。待用户检查出错,修改后在运行。 2.文件的关闭(fclose函数) 使用完一个文件之后应该尽快关闭,以免数据丢失。 关闭一个文件使用fclose()函数实现,其格式如下: Fclose(文件指针) 文件指针:指明要关闭哪个文件,作为参数的文件指针必须是由打 开文件函数fopen()得到的。 例如: #include<stdio.h> main() { FILE *fp; … if(fp=fopen(“abc.txt,”“r”))==0) /*尝试打开文件*/
/* 调用DOS命令输出源文件内容*/ /* 调用DOS命令输出目标文件内容
10.3文件的读写
10.3.2 fgets()函数和fputs()函数
以字符为单位的fgetc()函数和fputc()函数一次只能读出或写入一个字 符到文件中,显然处理大量数据时效率不高,以字符串为单位的fgets()函 数和fputs()函数可以一次从文件输入或向文件输出一个字符串。 1.fgets ()函数 fgets()是从文件而不是从标准输入设备取得字符串。其格式如下: fgets(字符串指针,字符个数,文件指针); 其中第一个参数“字符串指针”,即一个字符组名或指向字符的指针, 用于存放读出的字符串;第二个参数指明读出多少个字符,是一个整型数; 第三个参数即目标文件的文件指针。 fgets()在遇到换行符或文件结束符时,即使已读取得字符数小于参数 中指定的数量也会自动停止。如程序设计者已经知道abc.txt文件不大于 100个字节,调用fgets()函数的第二个参数为100,使得整个文件被一次 读取。若abc.txt文件大于100字节,则后面的内容没有被读取。如果 fgets()读取到文件结束符,将会返回一个NULL值。可以据此判断是否到 达文件尾部,使用循环语句读出整个文件。若目标文件的结构不清晰,一 般使用fgetc()函数逐个字符读取,逐个处理。在预先知道目标文件结构的 情况下,使用fgets()函数能提高效率。

C语言程序设计第10章02PPT课件

C语言程序设计第10章02PPT课件

17.08.2020
华中科技大学计算机学院
4
10.7.2 联合变量的声明、初始化及 联合成员的引用
定义了union chl的联合类型后,可以通过: union chl u;
来声明一个union chl类型的变量。 也可以在定义union chl联合类型的同时来声明相应的联合变
量。如: union chl{ char c; short h; long l; }v={ˊ9ˊ};
它在定义union chl联合类型的同时声明了联合类型的变量v, 并且对其进行了初始化。
在不产生二义的情况下,往往简称联合类型的变量为联合。
17.08.2020
华中科技大学计算机学院
5
联合变量的声明、初始化
值得注意的是,联合变量的初始化与结构的初始化 在形式上相同,都应该用花括号界定初值,但联合 是一种特殊形式的构造类型的数据,在同一时刻它 只拥有其中的一个成员。
8
void show(union chl *pu)
{
printf("char format: %c\n",(*pu).c);
printf("int format: %hx\n",pu->h);
printf("long format: %lx\n",(*pu).l);
}
void show_memoy(union chl *pu)
17.08.2020
华中科技大学计算机学院
10
对程序和程序的运行结果可以做如下分析:
1) 联合的存储结构
从sizeof(u)的结果为4可以看出,联合u所占存储的 大小为4个字节,这正好是长整型成员l所占存储的大 小。这4个字节的存储是连续的,地址从0xFFD8至 0xFFDB。u.l 的值为0x31323334L,u的存储描述 为:

C语言程序设计第四版PPT-谭浩强

C语言程序设计第四版PPT-谭浩强

文件f2的 文件信息区
文件f3的 文件信息区
文件的基本知识——文件的操作 写文件:打开-写-关闭 读文件:打开-读-关闭
文件的打开
功能:为文件建立相应的信息区(存放 文件信息)和文件缓冲区(暂时存放输入 输出的数据) 函数: fopen(文件名,使用文件方式); 例: fopen("a1.dat","r");
第10章 文件
本章内容
10.1 文件的基本知识 10.2 打开与关闭文件 10.3 顺序读写数据文件 10.4 随机读写数据文件 10.5 文件读写的出错检测
文件的基本知识——输入输出
之前各章中处理的数据 ➢输入:键盘->内存 ➢输出:内存->显示器 实际上也可能是 ➢输入:外部设备->内存(读文件) ➢输出:内存->外部设备(写文件) 操作系统把各种设备都统一作为文件处理
文件
顺序文件的读写——读写字符串
例10.3 从键盘输入3个字符串,排序,把排
序后的字符串写入文件(P.342-343) 读上面写好的文件(P.344)
顺序文件的读写——格式化读写
fprintf(文件指针,格式字符串,输出表列); fscanf (文件指针,格式字符串,输入表列);
例: fprintf (fp,"%d,%6.2f",i,f); fscanf (fp,"%d,%f",&i,&f);
用文件扩展名”
文件的基本知识——流式文件
C语言把文件看作是字符(或字 节)的序列。
文件以“流”的形式在程序与操 作系统间流动。
文件的基本知识——数据的形式
根据数据的组织形式,数据文件可分为 ASCII文件:数据逐个字符的ASCII码 输出到外存,也称文本文件 二进制文件:内存中二进制形式的数据 直接输出到外存

《C语言程序设计教程》PPT课件

《C语言程序设计教程》PPT课件
② 标准输出文件,文件指针为stdout,系统指定为 显示器。
③ 标准错误输出文件,文件指针为stderr,系统指 定为显示器,输出错误信息。
10.1 文件的概述
11
10.1.2 文件的打开与关闭
操作文件的一般步骤
打开文件 读写文件 关闭文件 打开量文的件函C:语数建配言,立一的用用个输于户文入完程件输成序缓出对与冲函数文区数据件。库文的中件联提的系供建,了立为大、文件分 读写数文据件的:读是写指、对数文据件的的追读加、等写操、作追。加和定位操作。 关闭文件在:程切序断中文调件用与这程些序函的数联时系,,必释须放先文用件缓冲
}
FFIILLE;E *文件指针变量/名* ;This is the FILE object */
10.1 文件的概述
10
10.1.1 文件和文件指针
4. 标准文件
标准文件是外部设备中的三个特殊的设备文件。它们 的文件指针是系统定义的,并由系统自动打开和关闭。这 三个标准文件分别是:
① 标准输入文件,文件指针为stdin,系统指定为 键盘。
include命区令。包含stdio.h文件。
10.1 文件的概述
12
10.1.2 文件的打开与关闭
1. 文件打开函数fopen( )
常用的调用形式: FILE *fp; fp = fopen(文件名, 文件使用方式); 文件名:需要打开的文件名称(字符串)。 文件使用方式:是具有特定含义的符号。
缓冲区cha地r 址和大小f等d; 。 /* File descriptor
*/
FILE在类usnhCso型语irgt是n言ed系中ch统a,r定无hb义os论li的dz;e对;,磁包//**盘含UBnu文g在fefte件scrtcs还dhiazi是reo.i设fh头n备o 文b文uf件*f件/er中*/

C语言程序设计课件第10章

C语言程序设计课件第10章

10 文件
10
第10章 文件
通过本章的学习掌握磁盘文件中数据载入 方法和信息保存方法,能够对学生成绩管 理系统进一步完善。
第1章 C语言程序设计基础
知识目标
理解文件的概念 掌握文件的基本操作 掌握文本文件和二进制文件的读写 方法 掌握文件的定位方法
技能目标
学会使用文件进行数据的存储及处 理 能够用文件完善学生成绩管理系统
10.2 文件的读写
10.2.1 文本文件的读写
C语言提供以字符方式读写文件的函数有: • 写字符函数 int fputc(char ch, FILE *fp) • 读字符函数 int fgetc(FILE *fp) • 写字符串函数int fputs(char *string,FILE *fp) • 读字符串函数char *fgets(char *string,int n,FILE *fp)
10.1 文件的基本概念
10.1.1 文件的概念及文件类型
2.文件类型 (1)按文件的逻辑结构
记录文件:由具有一定结构的记录组成(定长和不定长)。 流式文件:由一个个字符(字节)数据顺序组成。 (2)按存储介质: 普通文件:存储介质文件(磁盘、磁带等) 设备文件:非存储介质(键盘、显示器、打印机等)
10.1.1 文件的概念及文件类型
5.文件的定义 一般情况下,要使用一个文件,系统将在内存中为这一文件开辟一个“文 件信息区”,用来存放文件的有关信息,如文件当前的读写位置、缓冲区 中未被处理的字符数、文件操作方式、下一个字符的位置、文件缓冲区 的位置等。这些信息保存在一个结构体中,该结构体由系统定义的,定 义在stdio.h的头文件中。Visual C++6.0系统中具体定义形式为:

《C程序设计》课件第10章

《C程序设计》课件第10章

在C语言中文件的含义更为广泛,不仅包含以上所述 的磁盘文件,还包括一切能进行输入/输出的终端设备,它 们被看成是设备文件。如键盘常称为标准输入文件,显示 器称为标准输出文件。
文件是由磁盘文件和设备文件组成的。作为磁盘文件 之一的数据文件是本章学习的主要对象。
根据文件内数据的组织形式, 文件可分为文本(text) 文件和二进制文件。 文本文件又称为ASCII码文件, 这种文件在磁盘中存放时每个字节存放一个字符的ASCII 码。 ASCII码文件可在屏幕上按字符显示, 文件的内容可 以通过编辑程序(如记事本等)进行建立和修改, 人们能读 懂文件内容。 但是ASCII码文件所占存储空间较多, 处理 时要花费转换时间(内存中的二进制形式与ASCII码之间的 转换)。
typedef struct
{
short
level; /* 缓冲区“满”或“空”的程
度 */
unsigned flags; /* 文件状态标志 */
char
fd; /* 文件描述符 */
unsigned char hold; /* 如无缓冲区不读取字符 */
short
bsize; /* 缓冲区的大小 */
缓冲文件系统中,关键的概念是文件指针。
通常,由于文件中的数据很多,因此读/写时应该指明 对哪个数据进行操作。流式文件中采用的方法是设立一个 专门用来存放文件读/写位置的变量,称为当前工作指针。 在对某文件开始进行操作时,将当前工作指针的值设置为 0,表示文件从头开始读(写); 每次读(写)之后,自动将当 前工作指针的值加上本次读(写)的字节数,作为下次读(写) 的位置。从前面的介绍可以看出,要对一个文件进行操作, 除了要设当前工作指针,还必须管理缓冲区。实际上,在 头文件stdio.h中,定义了一个名为FILE的类型,包含了所 有与文件操作有关的数据成员,这个文件类型是文件处理 的基础。文件类型FILE不是C语言的新类型,它是用 typedef定义出来的有关文件信息的一种结构体类型。如 Turbo C的stdio.h文件中有如下的定义:
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
② 标准输出文件,文件指针为stdout,系统指定为 显示器。
③ 标准错误输出文件,文件指针为stderr,系统指 定为显示器,输出错误信息。
精选ppt
10.1 文件的概述
11
10.1.2 文件的打开与关闭
操作文件的一般步骤
打开文件 读写文件 关闭文件 打开文件C:语建言立的用输户入程输序出与函文数件库的中联提系供,了为大文件分
1
C 语言程序设计
第10章 文 件
北京科技大学 计算机系
精选ppt
第10章 文件
2
10.1 文件的概念 10.2 文本文件的读写 10.3 二进制文件的读写
精选ppt
10.1 文件的概述
3
10.1.1 文件和文件指针
1. 什么是文件
文件:存储在外部存储介质上相关数据的集合。
例如:程序文件中保存着程序,数据文件中保存着数据。
1. 文件打开函数fopen()
常用的调用形式: FILE *fp; fp = fopen(文件名, 文件使用方式); 文件名:需要打开的文件名称(字符串)。 文件使用方式:是具有特定含义的符号。
函数功能:
按指定的文件使用方式打开指定的文件。 若文件打开成功,为该文件分配一个文件缓冲区和一个 FILE类型变量,返回一个FILE类型指针; 若文件打开失败,返回NULL。
*/
FILE在类usnhCso型语irgt是n言ed系中ch统a,r定无hb义os论li的dz;e对;,磁包//**盘含UBnu文gf在efte件scr tcs还dhiazi是reo.i设fh头n备o 文b文uf件*f件/er中*/
的读/un写si都gne要d c通har过F*IbuLfEfe类r;型/*的Da结ta 构tra体nsf变er量bu进ffe行r *。/
6
10.1.1 文件和文件指针
2. 文件的种类
例如将整数1949分别存储在这两种数据文件中。
ASCII文件:ASCII码
00110001 00111001 00110100 00111001 占用4个字节
'1'
'9'
'4'
'9'
二进制文件:补码
00000111 10011101 占用2个字节
精选ppt
➢ 非缓冲文件 利用非缓冲文件系统处理的文件称为非缓冲文件。
系统处理非缓冲文件时,不为文件开辟缓冲区,需要程 序员自行设计并管理缓冲区。
精选ppt
10.1 文件的概述
10.1.1 文件和文件指针
3. 缓冲文件和文件指针
系统对文件的处理过程就是 对文件进行输入/输出操作的过 程。
从文件读数据时,先一次性 从磁盘文件中读取一批数据到缓 冲区,然后再从缓冲区逐个将数 据送入变量。
typ都存ede放自f 文动ssuthnros件分urictgtn的配ed{有一关个信FlfIelL息vaEegls类,;; 型如//**的文fFii结件llle/构号setmap体、ttuys文变lfe量件lvaegl状,sof态用b*u、于/ffer */
缓冲区cha地r 址和大小f等d; 。 /* File descriptor
}
FFIILLE;E *文件指针变量/名* T;his is the FILE object */
精选ppt
10.1 文件的概述
10
10.1.1 文件和文件指针
4. 标准文件
标准文件是外部设备中的三个特殊的设备文件。它们 的文件指针是系统定义的,并由系统自动打开和关闭。这 三个标准文件分别是:
① 标准输入文件,文件指针为stdin,系统指定为 键盘。
在C语言中,“文件”的概念被进一步扩大, 把每台与主机相连的输入输出设备都看作是一个 文件。即把实际的物理设备抽象为逻辑文件,它 们被称为设备文件。
对外部设备的输入输出就是对设备文件的 读写。
精选ppt
10.1 文件的概述
5
10.1.1 文件和文件指针
2. 文件的种类
按文件存储数据的形式
➢ ASCII文件(或称文本文件)
ASCII码文件中每个字节存放一个ASCII代码,代表 一个字符,此种存储形式便于输出显示,在DOS操作系统 下可以直接阅读。
➢ 二进制文件
二进制文件中的数据是按照在内存中的二进制存储 格式存放的,此种存储形式节省存储单元。二进制文件 在DOS操作系统下不能直接阅读。
精选ppt
10.1 文件的概述
因此对uns于ign每ed 个cha使r 用*c中urp的; 磁/*盘Cu文rre件nt必ac须tiv先e p定oin义ter一*/ 个FILusEhnos类ritgn型ed的文件ti指osktee针nm;p;变量//** 并UTseem指dpofr向oarry此vfa变illied量iitny。dcihceactkoirn*g/*/
向文件写数据时,也是先将 变量中数据送到缓冲区,待缓冲 区装满后,再一起存到磁盘文件 中。
精选ppt
8
程序区
数据区
输入 输出 文件
缓冲区
内存
磁盘文件 输出
输入 外存
图10.2 系统对缓冲文件的处理
10.1 文件的概述
9
10.1.1 文件和文件指针
3. 缓冲文件和文件指针
文件类型指针
在缓冲文件系统中,对每个正在使用的文件
10.1 文件的概述
7
10.1.1 文件和文件指针
2. 文件的种类
按照对文件的处理方式
➢ 缓冲文件
利8用3缓年冲以文后件A系NS统I 处C理标的准文中件取称消为了缓冲非文缓件冲。文系件统处 理缓冲系件区冲方统系进区法, 统行,是对 进。其在大文 行内小存本 处是中文理5为件。12每个和个字二正节进在。制使对文用文的件件缓读均冲写采文数用件据缓开都冲辟通文一过个缓
量的函数配,一用个于文完件成缓对冲数区据。文件的建立、 读写数文据件的:读是写指、对数文据件的的追读加、等写操、作追。加和定位操作。 关闭文件在:程切序断中文调件用与这程些序函的数联时系,,必释须放先文用件缓冲
include命区令。包含stdio.h文件。
精选ppt
10.1 文件的概述
12
10.1.2 文件的打开与关闭
*.C
C语言的源程序 文本文件
*.OBJ
目标文件
二进制文件
*.EXE
可执行文件
二进制文件
文件的存储特性
文件是一个有序的数据序列。C语言把文件作 为一个字符(字节)序列处理,对文件的存取是 以字符(字节)为单位进行的。
精选ppt10.1Fra bibliotek文件的概述4
10.1.1 文件和文件指针
1. 什么是文件
设备文件
相关文档
最新文档