C语言第11章精品PPT课件
合集下载
C语言第十一章课件
….
a
0x0037b000
pa
1
0x0037b004
2
0x0037b008
3
0x0037b00B
4
a[0] a[1] a[2] a[3]
…...
int *pa=a; int *pa=&a[0];
数组名是一个常量指针 不能修改该指针的指向
指针可当数组名使用,可 以更改指针的指向
11.1 指针和一维数组间的关系
char c[ ]= "sofptw[1a] re&"b,[*0]p[4];
hardware b
int i;
p[2] &c[0]
software c
p[0]=a;
p[3] NULL
p[1]=b;
p[2]=c;
运行结果为:
数组pf在 字末o[r3程符尾p(]i=r=设序指iN0n置中针Ut;fL(pN数,"U[L%iL组如];L!=s(在果\空Nn初一"/U指/,或Lp始个针[Lpi化数])[);3来;时组]i+=解+的0,;)决长也。度可chsooa不以fmrtdw定把pwauar多,teerre个可以字利符用串在的
地址量[整数i]
其含义是访问以地址量为起 点的第i个数据。
a[5] p[5]
*(a+5) *(p+5)
int a[10];
p= &a[0] a a[0] *p a[1] *(p+1)
a[2]
a[3]
p+5
a+5
a[4] a[5] *(p+5)
a[6]
a[7]
a[8i ] *(p+i)
C语言程序设计(姜学峰版)PPT课件第十一章
8
5)定义结构体类型仅仅声明了一种数据结构,编译 系统不会为类型分配存储空间的;此时可用已定 义的结构体类型去定义结构体变量或数组,编译 系统将为结构体变量分配存储空间;
9
2. 定义结构体类型的变量 有三种方法: 1)先定义结构体类型,再用类型标识去定义变量 struct student stu1, stu2; struct student是已定义的结构体类型标识符; stu1、stu2是所定义的结构体变量;编译时将为 结构体变量分配各自的存储空间; 2)定义类型的同时定义变量 struct student { …; …; } stu1, stu2;
18
5. 结构体变量的指针、结构体成员的指针 注:&优先级为2级,低于.和[ ]; stu1 变量stu1的指针:&stu1 图示: num
num成员指针:&stu1. num
4
20 1
name第i个元素指针:&stu1. name[i]
name sex m
┇
birthday d 最低级成员y的指针:&stu1.birthday.y y score
5
例:定义可表示学生基本情况的结构体类型。
项目: 学号 姓名 性别 出生日期 成绩 电话号码 数据: 010510 Li Feng M 1981.5.4 680 029-8482500
类型: 长整/字串 字串
字符
字串
整型
字串
struct student /*结构体类型标识*/ { long num; char name[20]; char sex; char birthday[12]; float score; char tel[15]; };
C程序设计第十一章ppt课件
最新版整理ppt
第11章
11.2 文件的打开和关闭
例➢ :打以开只文读件方fo式pe打n函开数文本文件d:\vc\abc.txt。
F函IL数E原型*fp;
fp=fopen( "d:\\vc\\abc.txt", "r" ) ; 通FIL常E需* fo要pe检n(查cha文r *件file打na开me是, c否ha成r *功mo,de以) 下是 文件功打能开:常打开用名的为程fi序len段am:e的文件,函数的返回值
➢ 文件类型指针的定义 FILE *文件结构体指针变量名;
最新版整理ppt
第11章
11.1 文件概述
➢文件的操作
打开文件:建立文件缓冲区、获取指向 FILE类型结构体变量的指针。
读写文件:通过文件类型指针,调用读写 函数对文件进行读写操作。
关闭文件:释放文件缓冲区,释放文件指 针所指的FILE类型结构体变量。
➢ 文件名称
文件名[.扩展名]
➢ 在C程序中的数据文件按存储格式分:
以字符形式存储的文件称文本文件或ASCII 码文件
以二进制形式存放的文件称二进制文件
最新版整理ppt
第11章
数据文件的存储格式
➢例:数据12345678 二进制文件
按二进制数存放:4个字节
00000111 01011011 11001101 00010101
11.3 文件的读写— feof函数
➢ feof函数:判断是否读到文件末尾
函数原型:int feof(FILE *fp)
功能:当读到文件末尾时返回非0值,否 则返回0。
例使:用FI方LE法*:fp适; 用c于ha文r 本ch文; 件或二进制文件 fp=fopen( "d:\\vc\\abc.txt", "r" ) ;
第11章
11.2 文件的打开和关闭
例➢ :打以开只文读件方fo式pe打n函开数文本文件d:\vc\abc.txt。
F函IL数E原型*fp;
fp=fopen( "d:\\vc\\abc.txt", "r" ) ; 通FIL常E需* fo要pe检n(查cha文r *件file打na开me是, c否ha成r *功mo,de以) 下是 文件功打能开:常打开用名的为程fi序len段am:e的文件,函数的返回值
➢ 文件类型指针的定义 FILE *文件结构体指针变量名;
最新版整理ppt
第11章
11.1 文件概述
➢文件的操作
打开文件:建立文件缓冲区、获取指向 FILE类型结构体变量的指针。
读写文件:通过文件类型指针,调用读写 函数对文件进行读写操作。
关闭文件:释放文件缓冲区,释放文件指 针所指的FILE类型结构体变量。
➢ 文件名称
文件名[.扩展名]
➢ 在C程序中的数据文件按存储格式分:
以字符形式存储的文件称文本文件或ASCII 码文件
以二进制形式存放的文件称二进制文件
最新版整理ppt
第11章
数据文件的存储格式
➢例:数据12345678 二进制文件
按二进制数存放:4个字节
00000111 01011011 11001101 00010101
11.3 文件的读写— feof函数
➢ feof函数:判断是否读到文件末尾
函数原型:int feof(FILE *fp)
功能:当读到文件末尾时返回非0值,否 则返回0。
例使:用FI方LE法*:fp适; 用c于ha文r 本ch文; 件或二进制文件 fp=fopen( "d:\\vc\\abc.txt", "r" ) ;
C语言辅导班第11章PPT教学课件
}
main()
{
int a[]={1,2,3,4,5}, s=0;
s=fun(a, 5);
printf(“%d\n”, s);
}
该程序运行后的输出结果是________。
A) 15
B) 25 C) 20 D) 10
2020/12/1型必须与主函数中数组a的 类型一致。
(1)fun(int *a)。
(2)fun(int a[])。
(3)fun(int a[N])。
2020/12/10
2
例11.1 有以下程序:
int fun(int *x, int n)
{
int i, sum=0;
for(i=0; i<n; i++)
sum=sum+x[i];
return sum;
2020/12/10
12
例题
(34)有以下程序 #include <stdio.h> void fun(int a[], int n) { int i, t; for(i=0; i<n/2; i++) {t=a[i]; a[i]=a[n-1-i]; a[n-1-i]=t;} } main() { int k[10]={1,2,3,4,5,6,7,8,9,10}, i; fun(k,5); for(i=2; i<8; i++) printf("%d", k[i]); printf("\n"); } 程序的运行结果是( )。 A)345678 B)876543
(2)在fun函数中引用主函数数组a中的元素 时,只能使用fun函数中指向主函数数组的 指针来引用主函数中的数组元素。
C语言第十一章[57页]
结构体类型的声明
struct student {
long id; char name[20]; char sex; int age; float score[5]; char addr[30]; };
声明了一个结构体类型
结构体的名字 称为结构体标 签(Structure Tag)
构成结构体的变量 称为结构体的成员
第十一章 自定义数据类型
目录/Contents 结构体数据类型,共用体数据类型、枚举数据类型、定 义数据类型的别名 结构体变量、结构体数组、结构体指针的定义和初始化 结构体成员的引用、成员选择运算符、指向运算符 向函数传递结构体变量、结构体数组、结构体指针 动态数据结构、动态链表
问题的提出
在程序里怎样表示一个人的信息(姓名、年龄、性别…)? 想表示多个人呢? 如何用计算机程序实现下述表格的管理?
long id; char name[20]; char sex; int age; float score[5]; char addr[30]; }STUDENT;
stu.id=1232019101; strcpy(,”张三丰”); stu.sex=‘M’;
stu.age=20;
stu.score[ ]= {85,78,90,83,77}; Stu.addr=“北京”;
typedef struct date {
int month; int day; int year; }DATE;
结构体.成员名
stu.id=1232019101; 当出现结构体嵌套时,必须以级联方式 访问结构体成员
stu.birthday.year=2000; stu.birthday.month=5; stu.birthday.day=12;
C 语言程序设计章 (11)
{
MyStack<int,5> ss;
for(int i=0;i<10;i++)
{try
{if(i%3)cout<<ss.pop()<<endl;
else ss.push(i);
}
catch (StackOverflowException &e)
{ e.getMessage();
}
catch (StackEmptyException &e)
– try语句块和catch语句块是一个整体,两者之间不能有其他的语句;
– 一个try语句块后面可以有多个catch语句,但是,不可以几个try语句块后 面用一个catch语句。
C++语言程序设计
11
11.3 用类对象传递异常
– throw语句所传递的异常,可以是各种类型的:整型、实型、字符型、指针, 等等。也可以用类对象来传递异常。
template <class T, int i> //类模板定义 class MyStack { T StackBuffer[i];
int size; int top; public: MyStack( void ) : size( i ) {top = i;}; void push( const T item ); T pop( void ); };
理的机制。
C++语言程序设计
6
• 例:程序将连续地输入两个实数,通过调用函数,返回这两个数相除的商。并且 要注意除数不能为0。
• 用一般的方法处理除法溢出
void main()
#include <iostream>
C程序课件第11章结构
2021/3/20
5
C 语言允许用户自己指定这样一种数据结构, 它称为结构体(structure)。它相当于其他高级 语言中的“记录”。但C语言并没有直接提供这 种数据类型,因此用户必须要在程序中建立所
需的结构体类型。如:
struct student
{ int num;
char name[20];
2021/3/20
16
2、在声明类型的同时定义变量 这种形式的定义的一般形式为:
struct 结构体名
{ 成员表列
}变量名表列;
2021/3/20
17
例如:
struct student { int num;
char name[20]; char sex; int age; float score; char addr[30]; } student1, student2; 它的作用与第一种方法相同,即定义了 两个struct student类型的变量student1、 student2。
2021/3/20
4
num name sex age score addr
10010 Li Fun M 18 87.5 Beijing
可以看出性别(sex)、年龄(age)、成 绩(score)、地址(addr)是属于学号为 10010和名为“Li Fun”的学生的。如果将 num、name、sex、age、score、addr分别定 义为互相独立的简单变量,是难以反映它们 之间的内在联系的。
但不能企图为结构体变量各成员整体赋值,如下 面的语句是不合法的:
scanf(“%d,%s,%c,%d,%f,%s”,&student1);
2021/3/20
27
C 第十一章课件.ppt
多重集合允许重复的关键字(key),而集合不允许。 元素的顺序由比较器函数对象(comparator function object)确定。如对整型multiset,只要用比较器函数对象 less<int>排序关键字,元素即可按升序排列。
multiset和set通常实现为红黑二叉排序树。红黑二叉排 序树是实现平衡二叉排序树的方法之一。
vector的迭代子通常实现为vector元素的指针。所谓选 择容器类,实际上很大部分是在选择所支持的迭代子。
11.3 顺序容器
使用矢量容器的声明如下: #include<vector> …… vector<int> vi; //定义存放整形序列的向量容器对象vi,长度为0的空vector vector<float> vf; //存放实型序列的向量容器 vector<char> vch; //存放字符序列的向量容器 vector<char*>vstr; //存放字符串序列的向量容器
容器适配器 stack(栈) queue(队列)
priority_queue (优先级队列)
后进先出(LIFO) 先进先出(FIFO) 最高优先级元素总是第一个出列
11.1 标准模板库简介
顺序容器和关联容器称为第一类容器(first-class container)。另外有四种容器称为近容器(near container):C语言风格数组、字符串string、操作1/0标志 值的bitset和进行高速数学矢量运算的valarray。 它们虽然提供与第一类容器类似的功能,但没有全部功能。
4.流缓冲迭代子。这是STL后添加的一对迭代子,用来 直接从一个流缓冲区(streambuffer)中插入或提取某 种类型(通常为char)的元素。
multiset和set通常实现为红黑二叉排序树。红黑二叉排 序树是实现平衡二叉排序树的方法之一。
vector的迭代子通常实现为vector元素的指针。所谓选 择容器类,实际上很大部分是在选择所支持的迭代子。
11.3 顺序容器
使用矢量容器的声明如下: #include<vector> …… vector<int> vi; //定义存放整形序列的向量容器对象vi,长度为0的空vector vector<float> vf; //存放实型序列的向量容器 vector<char> vch; //存放字符序列的向量容器 vector<char*>vstr; //存放字符串序列的向量容器
容器适配器 stack(栈) queue(队列)
priority_queue (优先级队列)
后进先出(LIFO) 先进先出(FIFO) 最高优先级元素总是第一个出列
11.1 标准模板库简介
顺序容器和关联容器称为第一类容器(first-class container)。另外有四种容器称为近容器(near container):C语言风格数组、字符串string、操作1/0标志 值的bitset和进行高速数学矢量运算的valarray。 它们虽然提供与第一类容器类似的功能,但没有全部功能。
4.流缓冲迭代子。这是STL后添加的一对迭代子,用来 直接从一个流缓冲区(streambuffer)中插入或提取某 种类型(通常为char)的元素。
语言程序设计ch11简明教程PPT课件
为读/写打开或建立一个文本/二进制文件
<
>
C语言程序设计
第11章 文件
§ 11.2.4 文件的关闭
用fclose函数关闭文件。 格式: fclose(文件指针变量);
... main( ) { FILE *fp; ... if((fp=fopen(文件名,"打开方式"))==NULL) { printf("cannot open this file\n"); exit(1); } ... fclose(fp); /*关闭文件*/ }
fseek( )
文件定位 rewind( ) ftell( ) ferror( ) 文件状态 clearerr( )
<
>
C语言程序设计
第11章 文件
§ 11.2 文件的打开与关闭 § 11.2.1 文件指针
#ifndef _FILE_DEFINED struct _iobuf { char *_ptr; int _cnt; char *_base; int _flag; int _file; int _charbuf; int _bufsiz; char *_tmpfname; }; typedef struct _iobuf FILE; #define _FILE_DEFINED #endif
文件使用方式 含义 为输入打开一个文本/二进制文件 为输出打开或建立一个文本/二进制文件 向文本/二进制文件尾追加数据 为读/写打开一个文本/二进制文件 为读/写建立一个文本/二进制文件
“r/rb” (只读)
“w/wb” (只写) “a/ab” (追加) “r+/rb+” (读写) “w+/wb+” (读写) “a+/ab+” (读写)
C语言学习课件PPT第11章
(3)实现&、|、^运算主要用途的方法 1)构造1个整数:该数在要取(或保留)的位、或 要置1的位、或要翻转的位上为1,其余均为0。 2)进行按位与、或按位或、或按位异或操作。 (4)实现按位取反主要用途的方法 1)求~0,间接地构造一个全1的数; 一 个 全 1 的 数 , 在 IBM-PC 机 中 为 0xffff(2字节),而在VAX-11/780上,却是0xffffffff(4 字节)。如果用~0来构造,系统可以自动适应。具体应 用,请参见[案例 案例11.1]。 案例 11.2.2 应用举例 [案例 案例11.1] 从键盘上输入1个正整数给int变量num, 案例 输出由8~11位构成的数(从低位、0号开始编号)。
第11章 章
位运算
为了节省内存空间,在系统软件中常将多个标志状 态简单地组合在一起,存储到一个字节(或字)中。C 语言是为研制系统软件而设计的,所以她提供了实现将 标志状态从标志字节中分离出来的位运算功能。 所谓位运算是指,按二进制位进行的运算。
11.2 位运算 11.3 位段 [Return]
11.2 位 运 算
程序运行情况: Input a integer number:1000 ←┘ result=0x3 程序说明:~ ( ~0 << 4) 程序说明 按位取0的反,为全1;左移4位后,其低4位为0,其 余各位为1;再按位取反,则其低4位为1,其余各位为0。 这个整数正是我们所需要的。 [案例 案例11.2] 从键盘上输入1个正整数给int变量num, 案例 按二进制位输出该数。 /*案例代码文件名:AL11_2.C*/ /*程序功能:按二进制位输出一个整数*/
3.按位异或──^ .按位异或 (1)格式:x^y (2)规则:对应位相同时为0,不同时为1:3^9=10。 (3)主要用途:使1个数的某(些)位翻转(即原来为1的位 变为0,为0的变为1),其余各位不变。 4.按位取反 .按位取反──~ (1)格式:~x (2)规则:各位翻转,即原来为1的位变成0,原来为0的 位变成1:在IBM-PC机中,~0=0xffff,~9=0xfff6。 (3)主要用途:间接地构造一个数,以增强程序的可移 植性。 5.按位左移 .按位左移──<< (1)格式:x<< 位数 (2)规则:使操作数的各位左移,低位补0,高位溢出: 5<<2=20。
C语言第十一章课件
sex:%c\n”,(*p).num,(*p).name, (*p).sex);
}
引用结构体成员的三种形式:
结构体变量名.成员名 (*p).成员名
指向运算符。其优先级 高于自增、自减运算符
p- >成员名
试分析以下运算:
p->n 得到p指向的结构体变量中的成员n的值 p->n++ 得到p指向的结构体变量中的成员n的值,
char ch;
float fdata
{int i; char ch; 先定义 float f; 类型
};
union data a,b,c;
union {int i; char ch; float f; } a,b,c;
直接 定义
注意共用体类型变量与结构体类型变量的 区别
行赋值或存取以及运算。
如:student1.birthday.year
(续)
(接上片)
3. 对成员变量可以象普通变量一样进行各种运算, 如:
sumage=student1.age+student2.age;
4. 可以引用成员的地址,也可以引用结构体变量的
地址,如 scanf(“%d”,& student1.num);
不能只指定一个变 量为“struct型”而不 指定结构体名
struct student student1, student2;
•有时,可用符号常量代表一个结构体类型,如:
#define STUDENT struct student
STUDENT
{int num; char name[20]; char sex; int age; char addr[30];
struct date {int month; int day; int year; };
C语言PPT教程第十一章
足以保存这一组数据 • 在内存中开辟空间,使用的方法:声明变量 • 声明变量时的数据类型决定了空间的大小 • 没有哪个基本数据类型所声明的变量可以保
存一组相关数据(一组中数据类型不同) • 解决办法——自己创建数据类型 • 该数据类型一定由多个基本数据类型组成
5
自己创建数据类型——声明结构体
•一般形式:
• 每插入一个数,需要同前面的其它数依次比 较,选择合适位置,所以要用循环
char author[20];
float price;};
int edn;
struct cat book1;
float price;
strcpy(book1.bk_name,“人月神 };
话”);
struct cat book1={“人月神
strcpy(Book1.author,“Brooks”); 话”,“Brooks”,2,30.00};
temp=a [ j ]; a [ j ]=a [ j-1]; a [ j -1]=temp; }
第2、3、4次将最小值置顶,该如何写?
25
将最小值置顶
for( j=4 ; j>0; j-- ) if(a [ j ]<a [ j -1]) { temp=a [ j ]; a [ j ]=a [ j-1]; a [ j -1]=temp; }
• 示例: struct unit
{
char ch;
int i; };
struct unit series [3] =
{ {'a', 100}, {'b', 200},
{'c', 300}
19
};
结构体指针
存一组相关数据(一组中数据类型不同) • 解决办法——自己创建数据类型 • 该数据类型一定由多个基本数据类型组成
5
自己创建数据类型——声明结构体
•一般形式:
• 每插入一个数,需要同前面的其它数依次比 较,选择合适位置,所以要用循环
char author[20];
float price;};
int edn;
struct cat book1;
float price;
strcpy(book1.bk_name,“人月神 };
话”);
struct cat book1={“人月神
strcpy(Book1.author,“Brooks”); 话”,“Brooks”,2,30.00};
temp=a [ j ]; a [ j ]=a [ j-1]; a [ j -1]=temp; }
第2、3、4次将最小值置顶,该如何写?
25
将最小值置顶
for( j=4 ; j>0; j-- ) if(a [ j ]<a [ j -1]) { temp=a [ j ]; a [ j ]=a [ j-1]; a [ j -1]=temp; }
• 示例: struct unit
{
char ch;
int i; };
struct unit series [3] =
{ {'a', 100}, {'b', 200},
{'c', 300}
19
};
结构体指针
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
11.1 文件的概述
12
11.1.2 文件的打开与关闭
1. 文件打开函数fopen( )
常用的调用形式: FILE *fp; fp = fopen(文件名, 文件使用方式); 文件名:需要打开的文件名称(字符串)。 文件使用方式:是具有特定含义的符号。
函数功能:
按指定的文件使用方式打开指定的文件。 若文件打开成功,为该文件分配一个文件缓冲区和一个 FILE类型变量,返回一个FILE类型指针; 若文件打开失败,返回NULL。
设备文件
在C语言中,“文件”的概念被进一步扩大, 把每台与主机相连的输入输出设备都看作是一个 文件。即把实际的物理设备抽象为逻辑文件,它 们被称为设备文件。
对外部设备的输入输出就是对设备文件的 读写。
2021/2/21
11.1 文件的概述
5
11.1.1 文件和文件指针
2. 文件的种类
按文件存储数据的形式
1
C 语言程序设计
第11章 文 件
计算机科学系
第11章 文件
2
11.1 文件的概念 11.2 文本文件的读写 11.3 二进制文件的读写
2021/2/21
11.1 文件的概述
3
11.1.1 文件和文件指针
1. 什么是文件
文件:存储在外部存储介质上相关数据的集合。
例如:程序文件中保存着程序,数据文件中保存着数据。
因此对uunnss于iiggnn每eedd 个cha使r 用*ics中utrepm的;p; 磁//**盘CTue文rmrpeo件nrta必rayc须t*i/v先e p定oin义ter一*/ 个FILsEho类rt型的文件t指oke针n;变量/* 并Use指d f向or此va变lid量ity。checking */
系统处理非缓冲文件时,不为文件开辟缓冲区,需要程 序员自行设计并管理缓冲区。
2021/2/21
11.1 文件的概述
11.1.1 文件和文件指针
3. 缓冲文件和文件指针
系统对文件的处理过程就是 对文件进行输入/输出操作的过 程。
从文件读数据时,先一次性 从磁盘文件中读取一批数据到缓 冲区,然后再从缓冲区逐个将数 据送入变量。
向文件写数据时,也是先将 变量中数据送到缓冲区,待缓冲 区装满后,再一起存到磁盘文件 中。
8
程序区
数据区
输入 输出 文件
缓冲区
内存
磁盘文件 输出
输入 外存
图10.2 系统对缓冲文件的处理
2021/2/21
11.1 文件的概述
9
11.1.1 文件和文件指针
3. 缓冲文件和文件指针
文件类型指针
在缓冲文件系统中,对每个正在使用的文件 typ都存ed自e放f 动文ssuthnros件分urictgtn的配ed{有一关个信FlfIelL息vaEegls类,;; 型如//**的文fif结件llla/g构号esmp体、ty*变文l/e量件vel状,of态用bu、于ffer */
2021/2/21
11.1 文件的概述
13
11.1.2 文件的打开与关闭
文本文件的三种基本使用方式
配一个文件缓冲区。
读写文件:是指对文件的读、写、追加和定位操作。
关闭文件C:语切言断的文输件入与输程出序函的数联库系中,提释供放了文大件缓冲 量的函数区,。用于完成对数据文件的建立、 数据的读写、数据的追加等操作。 在程序中调用这些函数时,必须先用 include命令包含stdio.h文件。
2021/2/21
*.C
C语言的源程序
文本文件
*.OBJ
目标文件
二进制文件
*.EXE
可执行文件
二进制文件
文件的存储特性
文件是一个有序的数据序列。C语言把文件作 为一个字符(字节)序列处理,对文件的存取是 以字符(字节)为单位进行的。
2021/2/21
11.1 文件的概述
4
11.1.1 文件和文件指针
1. 什么是文件
}
FFIILLE;E *文件指针变量/名* ;This is the */
2021/2/21
11.1 文件的概述
10
11.1.1 文件和文件指针
4. 标准文件
标准文件是外部设备中的三个特殊的设备文件。它们 的文件指针是系统定义的,并由系统自动打开和关闭。这 三个标准文件分别是:
① 标准输入文件,文件指针为stdin,系统指定为 键盘。
② 标准输出文件,文件指针为stdout,系统指定为 显示器。
③ 标准错误输出文件,文件指针为stderr,系统指 定为显示器,输出错误信息。
2021/2/21
11.1 文件的概述
11
11.1.2 文件的打开与关闭
操作文件的一般步骤
打开文件 读写文件 关闭文件 打开文件:建立用户程序与文件的联系,为文件分
➢ ASCII文件(或称文本文件) ASCII码文件中每个字节存放一个ASCII代码,代表
一个字符,此种存储形式便于输出显示,在DOS操作系统 下可以直接阅读。
➢ 二进制文件 二进制文件中的数据是按照在内存中的二进制存储
格式存放的,此种存储形式节省存储单元。二进制文件 在DOS操作系统下不能直接阅读。
缓冲区cha地r 址和大小f等d; 。 /*
*/
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中*/
的读/un写si都gne要d c通har过F*IbuLfEfe类r;型/*的Da结ta 构tra体nsf变er量bu进ffe行r *。/
按照对文件的处理方式
➢ 缓冲文件
处个缓系件冲缓理系统利区冲方用统,8进区法3缓行,进对是年冲。其在行文以文大内处本后小件存理文A是系N中。件S5统为I1和2处每C个二标理个字进的准正节文制在中。件使文取对称用文件消为的件均了缓缓读采非冲冲写用缓文文数缓冲件件据冲文开。都文辟件系通过一统
➢ 非缓冲文件 利用非缓冲文件系统处理的文件称为非缓冲文件。
2021/2/21
11.1 文件的概述
6
11.1.1 文件和文件指针
2. 文件的种类
例如将整数1949分别存储在这两种数据文件中。
ASCII文件:ASCII码
Hale Waihona Puke 占用4个字节'1'
'9'
'4'
'9'
二进制文件:补码 占用2个字节
2021/2/21
11.1 文件的概述
7
11.1.1 文件和文件指针
2. 文件的种类