C语言教程第十章

合集下载

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

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

3."按位异或"运算符(^) . 按位异或"运算符 "按位异或"的运算符为"^" .其运算规则是:若两个 按位异或" 其运算规则是: 按位异或 的运算符为" 运算对象的对应二进制位不相等,则结果的对应位是1, 运算对象的对应二进制位不相等,则结果的对应位是 ,否 则为0. 则为 . "按位异或"运算具有以下几个性质: 按位异或"运算具有以下几个性质: 变为1, 变为 变为0. (1)使数据中的某些位取反,即将 变为 ,1变为 . )使数据中的某些位取反,即将0变为 (2)同一个数据进行异或运算后,其结果为 .利用异或 )同一个数据进行异或运算后,其结果为0. 运算的这个性质,可以将变量清零. 运算的这个性质,可以将变量清零. (3)可以实现交换两个变量的值: )可以实现交换两个变量的值:
15
14
13
12
11
10
9
8
7
6
54Βιβλιοθήκη 3210
图10.1 微机中整数的二进制位表示
10.1 二进制位运算 10.2 位 段
10.3 程序举例
10.1 二进制位运算
语言中共提供了6种位运算符 所示. 在C语言中共提供了 种位运算符,如表 语言中共提供了 种位运算符,如表10.1所示. 所示
表10.1

1."按位与"运算符(&) . 按位与"运算符 "按位与"的运算符为"&".其运算规则是:若两个运算 按位与"的运算符为" .其运算规则是: 按位与 对象的对应二进制位均是1,则结果的对应位是1,否则为0. 对象的对应二进制位均是 ,则结果的对应位是 ,否则为 . 利用"按位与"运算可以实现以下功能: 利用"按位与"运算可以实现以下功能: (1)取出数据中指定的位 ) (2)将数据中的指定位清零 )

C语言程序设计教程第10章_北京邮电大学出版社

C语言程序设计教程第10章_北京邮电大学出版社
2016/10/4
C语言程序设计教程
第10章 文件
7
内存 程序数据区 输出 输入
输出文件缓冲区
输出 磁盘 输入 输入文件缓冲区
在C语言中,无论是使用标准文件系统还 是非标准文件系统,都是利用I/O库函数完成 文件操作的。
2016/10/4
C语言程序设计教程
第10章 文件
8
11.2 标准文件操作
一、标准文件FILE结构指针 要调用一个文件,需要有以下的信息: ★文件当前的读写位置 ★与该文件对应的内存缓冲区的地址 ★文件操作方式等
2016/10/4
C语言程序设计教程
第10章 文件
9
3、在程序中定义一个指针变量,用以保存已打开文件所对 应的FILE结构在内存的地址,此后用户程序就可用此 FILE指针来实现对指定文件的存取操作。定义文件指针 变量的一般形式为: FILE *文件结构指针变量名 例如:FILE *fp; 注意: 1)只有通过文件指针,才能调用相应的文件。
2016/10/4
C语言程序设计教程
第10章 文件
20
例2、函数fputs和fgets的使用 #include <stdio.h> main() { FILE *fp; char *ch1="How are you!"; char ch2[20]; clrscr(); fp=fopen(“d:\\infile.txt","w+"); if(fp==NULL) { printf(“can not open this file\n"); exit(0); } fputs(ch1,fp); rewind(fp); /*用于把文件指针移到文件的开头。*/ fgets(ch2,strlen(ch)+1,fp); printf("%s",ch2); } 2016/10/4 C语言程序设计教程

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

《C语言程序设计教程》课件-第10章
② 标准输出文件,文件指针为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 *。/

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

C语言程序设计教程 第10章
2017/8/21
C语言程序设计教程
第10章 共用体与枚举类型
23
例如:
(1) 定义枚举类型status, 包含复制与删除两种状态:
enum status
{copy, delete};
枚举类型 status 仅有两个数据,一个是 copy ,一个
2017/8/21
程序运行结果如下: 请输入16进制整数:2fe1 循环左移4个二进制位得:fe12
/*16 位 的 C 语 言 程 序 不 需 要 “ 按 位
C语言程序设计教程
第10章 共用体与枚举类型
22
10.5 枚举类型
1. 枚举类型的定义
枚举类型定义用关键字enum标识,形式为: enum 标识符 {枚举数据表}; 标识符用来区分不同的枚举类型,定义的枚举类型用 enum标识符”标识。 枚举数据(枚举常量)是一些特定的标识符, 标识符 代表什么含义,完全由程序员决定。数据枚举的顺序规定 了枚举数据的序号,从0开始,依次递增。
union icf
{int i; char c; float f; };
C语言程序设计教程
2017/8/21
第10章 共用体与枚举类型
4
2 共用体变量的定义
(1) 先定义共用体类型, 再定义共用体变量: ① union 共用体名 {成员表}; ② union 共用体名 变量表;
2017/8/21
C语言程序设计教程
第10章 共用体与枚举类型
10
例10.1 写出下列程序的执行结果
main() {union exx {int a,b; struct {int c,d;}lpp; }e={10}; e.b=e.a+20; e.lpp.c=e.a+e.b; e.lpp.d=e.a*e.b; printf(“%d,%d\n”,e.lpp.c,e.lpp.d); } 程序运行结果如下: 60,3600

C语言第10章

C语言第10章

建立链表过程
开始时使head指向a结点,a.next指向b结 点,b.next指向c结点,这就构成链表关系。 “c.next=NULL” 的作用是使c.next不指向任 何有用的存储单元。在输出链表时要借助p, 先使p指向a结点,然后输出a结点中的数据, “p=p->next” 是为输出下一个结点作准备。 p->next的值是b结点的地址,因此执行“p=p>next”后p就指向b结点,所以在下一次循环 时输出的是b结点中的数据。
运行程序
12<CR> Month No. 12--December
#include <stdio.h> long * ZuiDaZhi () { long nLinShi ,nChengJi[10]={1,2,3,4,5,6,7,8,9,10}; int i, nWeiZhi=0; nLinShi = nChengJi[0]; for(i=1;i<10;i++) if(nChengJi[i] > nLinShi){ nLinShi = nChengJi[i]; nWeiZhi=i; } return &nChengJi[nWeiZhi]; } void main() { long *npZhiZhen = ZuiDaZhi (); printf("ShuZu Zhong De ZuiDaZhi Shi %ld", * npZhiZhen); }
指向函数的指针
• 一个函数在调用时被分配一个入口地址, 即函数指针,可以定义一个指向函数的指 针变量来指向它。 • 函数的指针变量的格式为:
– 数据类型(*指针变量名称)(形式参数列表);
• 数据类型是函数返回值的类型,形式参数 列表是函数的形式参数列表。 • 只要是返回值和参数表与指向函数的指针 的定义相同的函数,今后都可以用这个指 针指向那个函数。

C语言开发基础教程(Dev-C++) 第10章 文件操作

C语言开发基础教程(Dev-C++) 第10章 文件操作


10.3.2 单行读写文件
2、fputs()函数
FILE *fp;
fp = fopen("D:\\test.txt","r+"); //以读写模式打开文件
fputs("China",fp);

10.1.2 文件
总体来说,二进制文件较小,生成的速度 快,加载的速度也快,但文件内容往往需 要解析才可读。文本文件相对较大,生成 与加载的速度比二进制文件要慢,但文本 文件无需任何转换就可以看到其内容。

10.1.3 文件指针
在C语言中,所有的文件操作都必须依靠指针来完成,因此如果要对文件 进行操作,必须先定义指向文件的指针,然后通过文件指针完成对文件 的操作。 文件指针的定义格式如下: FILE *变量名; FILE *fp; //定义文件指针fp

10.2 文件的打开和关闭
文件正常打开时,函数返回指 向该文件的文件指针;文件打 开失败时,函数返回NULL。一 般在调用该函数之后,为了保 证程序的健壮性,会进行一次 判空操作。
FILE* fp;
//定义文件指针
fp=fopen(“D:\\test.txt”,“r”);
if(fp==NULL) //判空操作
程序
内存 输出文件缓冲区
输出
输出
输入 输入文件缓冲区 输入
磁盘

10.2 文件的打开和关闭
文件最基本的操作就是打开和 关闭,在对文件进行读写之前, 需要先打开文件;读写结束之 后,则要及时关闭文件。

10.2 文件的打开和关闭
1、打开文件 fopen()函数用于打开一个文件。 FILE* fopen(char* filename,char* mode); 返回值类型FILE*表示该函数返回值为文件指针类型;参数filename用于 指定文件的绝对路径,即用来确定文件包含路径名、文件名主干和扩展名 的唯一标识;参数mode用于指定文件的打开模式,函数的返回值为一个 文件类型的指针,如果文件打开失败,则返回空指针。

新编C语言程序设计教程(本科)第10章

新编C语言程序设计教程(本科)第10章

第10章指针类型10.1 指针与指针变量10.2 指针与数组10.3 指针与字符串10.4 指针与结构体10.5 指针与链表10.6 指针与函数10.7 指针作基类型10.8 程序设计举例10.1 指针与指针变量10.1.1 指针变量的定义1. 定义方法 形式: 类型标识符*变量标识符; 定义存放指定类型数据地址的指针变量。

例如: (1) int *p1,*p2,*p3; 定义指向整型数据的指针变量p1、p2、p3。

 (2) float *q1,*q2,*q3; 定义指向实型数据的指针变量q1、q2、q3。

 (3) char * r1,*r2,*r3; 定义指向字符型数据的指针变量r1、r2、r3。

(4) struct date {int year; int month; int day; } *t1,*t2,*t3; 定义指向struct date类型数据的指针变量t1、t2、t3。

说明: (1) 指针变量可与普通变量混合定义,指针变量的定义与普通变量的定义用变量名前加“*”区分。

例如: int i,*p;/*定义整型变量i,指针变量p*/ (2) 空指针“NULL”是一特殊的指针数据,表示空地址,相当于整型数据中的0,字符数据中的空格。

 (3) 指针变量只能用于存放指定类型数据的地址。

如以上定义的一些指针变量,p1、p2、p3只能存放整型数据的地址,q1、q2、q3只能存放实型数据的地址,r1、r2、r3只能存放字符型数据的地址,t1、t2、t3只能存放struct date型数据的地址。

(4) 指针变量不能直接赋以具体地址值,不能从键盘输入值。

指针变量通过间接赋以相关数据的地址,或调用存储空间分配函数得到值。

例如: int i,j,k; int*p1=&i,* p2=&j,* p3=&k;/* p1得到i的地址,p2得到j的地址,p3得到k的地址*/(5) 指针类型隐含在指针变量的定义中。

C语言基础 第10章

C语言基础 第10章

但是,在它的作用域以外,仍然是不能被引 用的。函数的静态局部变量值可以在函数的 两次调用之间保持值不变。 例10.3.1 应用静态局部变量的例子。 本程序中的函数numbers()是一个数发生 器,每调用函数numbers()一次,产生一个整 数。每个数的产生的数都是在上次产生的数 的基础上计算出来的。函数numbers()产生数 的算法是:
ax bx c 0
2Байду номын сангаас
要求在这个程序中,方程的系数a,b ,c设置为局部变量,方程的根X1,X2和 根的虚部q和实部 p都设置为全局变量, b2−4ac的值d也设置位全局变量。三种根 (两个不同的实根,两个相等的实根和两 个虚根)分别由三个函数计算。 程序如下:
#include "stdio.h" #include "math.h" float X1, X2, p, q, d; /* 定义全局变量 */ void greater_than_zero(float , float); /* 函 数说明 */ void equal_to_zero(float , float); void smaller_than_zero(float , float);
X2); } else if(d == 0) { equal_to_zero(a, b); printf("X1 = X2= %5.2f\n", X1); } else {
smaller_than_zero(a,b); printf("X1 = %5.2f+%5.2fi\n", p,q); printf("X2 = %5.2f-%5.2fi\n", p,q);
void smaller_than_zero(float x,float y) { p=-y/(2*x); q=sqrt(-d)/(2*x); return ; }

c语言基础教程-第十章------文件和读写函数

c语言基础教程-第十章------文件和读写函数

C语言基础教程文件和文件指针1.文件一般说来,文件是有序数据的集合。

程序文件是程序代码的有序集合,数据文件是一组数据的有序集合。

文件是被存放在外部存储设备中的信息。

对文件的处理过程就是面向文件的输入和输出过程。

文件的输入过程是从文件中读出信息,文件的输出过程是往文件中写入信息,文件的输入的过程使用读函数,实现文件输出的过程使用写函数。

文件的读写函数是实现文件操作的主要函数,本章将用大量篇幅来讲述文件的读写函数。

C语言文件被称为流式文件,其特点是不分记录或块,将文件看成是信息"流"或看成是一个字符流(文本文件),或看成是一个二进制流(二进制文件).文件的存取是以字符(字节)为单位的,读写数据流的开始和结束受程序控制。

任何一个文件都是以EOF结束,最简单的文件是只有结束符的空文件。

C语言文件包含有设备文件和磁盘文件,例如,键盘是一种输入信息的文件,显示器屏幕和打印机是输出信息的文件它们都属于设备文件。

将内存的信息放到磁盘上保存,需要时再从磁盘上装入内存,这就要使用磁盘文件,磁盘文件是计算机中常用的文件nC语言文件按存放设备分设备文件和磁盘文件;按数据的组织形式分为文本文件(ASCII码文件)和二进制文件。

文本文件是按一个字节存放一个字符的ASCII码来存放的;二进制文件是按数据在内存中的存储形式放到磁盘上的。

例如,有一个整数10000,在内存中按二进制形式存放,占2个字节,将它放在磁盘上如按文本文件形式存放,占5个字节,每个数位占一个字节。

两种存放方式各有利弊。

以文本文件形式输出便于对字符进行处理,也便于输出字符,但是占用存储空间较多,并且要花费转换时间。

以二进制文件形式输出可节省存储空间和转换时间,但是不能直接输出字符形式。

2.文件指针文件指针是一种用来指向某个文件的指针。

如果说某个文件指针指向某个文件,则是该文件指针指向某个文件存放在内存中的缓冲区的首地址。

每一个被使用的文件都要在内存中开辟一个区域,用来存放的有关信息,包括文件名字、文件状态和文件当前位置等。

C语言课件第10章

C语言课件第10章

Visual C++程序设计教程
➢(9)实现学生成绩按学生学号和按考 试科目查询功能。
➢(10)实现学生成绩按考试科目排序功 能。
➢(11)实现按考试科目查询并显示学生 成绩分布直方图功能。
电脑基础·实例·上机系列丛
清华大学出版社
程序实现
Visual C++程序设计教程
➢建立一个名为“studentmarks”的Access数 据库
在用户操作界面中,与显示学生成绩分布 相关的控件为 ,即在“CChap10View” 类中添加相关的成员函数。
电脑基础·实例·上机系列丛
清华大学出版社
小结
Visual C++程序设计教程
➢到这里,已经完成了学生成绩信息管理 系统的全部编程工作,实现了预定的所 有功能。通过这个实例我们可以对一个 程序设计的过程进行一个总结:
➢实现学生成绩按考试科目排序功能
➢实现按考试科目查询并显示学生成绩分 布直方图功能
电脑基础·实例·上机系列丛
清华大学出版社
Visual C++程序设计教程
建立一个名为“studentmarks”的Access数据 库
➢下面首先建立一个名为“studentmarks” 的Access数据库,用于存储学生信息。 (光盘:\第10章\综合实例)
电脑基础·实例·上机系列丛
清华大学出版社
Visual C++程序设计教程
添加“Drawpic”类相关成员函数
➢具体的绘图功能需由用户自定义函数 “drawpic”完成,因此应为“Drawpic” 类添加相关成员函数。
电脑基础·实例·上机系列丛
清华大学出版社

C语言第10章

C语言第10章

10.2 文件类型及其指针
当在C语言程序中操作一个实际的磁盘文件时,需要一个流指针 来代表这个文件.流指针其实是一个结构体类型的指针,这个结 构体被定义在头文件stdio.h中,它详细描述了一个流的性质,其 形式如下: typedef struct { short level; /*缓冲区"满"或者"空"的程度*/ unsigned flags; /*户文件状态标志*/ char fd; /*文件描述符*/ unsigned char hold; /*如果无缓冲区则不读取字符*/ short bsize; /*缓冲区的大小*/ unsigned char*buffer; /*数据缓冲区的位置*/ unsigned char*curp; /*指针,当前的指向*/ unsigned istemp; /*临时文件指示器*/ short token; /*用于有效性检查*/ }FILE;
它表示向文件指针变量fp指向的文件输出一个字符a.
文件复制工具程序
#include<stdio.h> void main(int argc,char *argv[]) { nt c;FILE*fpr,*fpd; printf("这是一个文件复制工具程序的例子\n"); if(argc!=3) { puts("\7 命令行参数的格式是exp12-6.exe 源文件名目的 文件名"); exit(0); } if((fpr=fopen(argv[1],"r"))==NULL) { printf("\7读取的文件%s不能打开\n",argv[1]); exit(0); }
第10章文件
本章要点 10.1 文件的基本概念概述 10.2 文件类型及其指针 10.3 文件的打开和关闭 10.4 文件的输入和输出 10.5 文件的定位函数 10.6 出错检测函数
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include <stdio.h>
6/24
§10.2 文件的使用
每个被使用的文件都在内存中开辟一个区,用来存放文件的有关信息. 这些信息是保存在一个结构体变量 这些信息是保存在一个结构体变量FILE中的,该结构体类型由系统定义. 结构体变量FILE中的,该结体类型由系统定义.
FILE的定义如下: FILE的定义如下: 的定义如下
11/24
用"r+"方式打开文件时,该文件应该已经存在; "r+"方式打开文件时 该文件应该已经存在; 方式打开文件时, 用"w+"方式时则建立一个新文件,可以先向文件写数据,然后可以读 "w+"方式时则建立一个新文件 可以先向文件写数据, 方式时则建立一个新文件, 文件中的数据; 文件中的数据; 用"a+"方式打开文件时,可以向文件追加数据,也可以从文件读取数据; "a+"方式打开文件时 可以向文件追加数据,也可以从文件读取数据; 方式打开文件时,
12/24
⑥,以文本方式和二进制方式打开文件的区别: 以文本方式和二进制方式打开文件的区别:
以文本方式打开时:读数据时,将文件中出现的回车和换行两个字符 以文本方式打开时:读数据时, 转换为一个换行符;写入数据时, 转换为一个换行符;写入数据时,将换行符转换为回车和换行两个字 符; 以二进制方式打开文件时, 写数据不进行这种转换; 以二进制方式打开文件时,读/写数据不进行这种转换;
返回值:返回被打开文件数据区的起始地址,即指向指定 返回值:返回被打开文件数据区的起始地址,即指向指定 文件的指针,若打开文件失败则返回NULL 文件的指针,若打开文件失败则返回NULL FILE *fp; fp=fopen("文件名 "使用文件方式 fp=fopen("文件名", "使用文件方式"); 文件名", 使用文件方式"); 在打开一个文件时,通知编译系统三个信息: ①,需要打开的文件名 ②,使用文件的方式 ③,让哪一个指针变量指向被打开的文件
7/24
FILE *fp; fp;
定义fp是指向FILE类型结构体的指针变量,可以使fp指向某一个文件 定义fp是指向FILE类型结构体的指针变量,可以使fp指向某一个文件 的结构体变量,从而通过该结构体变量中的文件信息能够访问该文件. 也就是说,通过文件指针变量能够找到与它相关的文件.
文件操作的一般步骤: 文件操作的一般步骤: 1,首先用fopen函数打开文件; ,首先用fopen函数打开文件 函数打开文件; 2,然后可以对文件进行读或写操作.往文件中写数据的 函数有:fputc,fwrite,fprintf,fputs,putw等;从文 函数有:fputc,fwrite,fprintf,fputs,putw等;从文 件中度数据的函数有:fgetc,fread,fscanf,fgets, 件中度数据的函数有:fgetc,fread,fscanf,fgets, getw等; getw等; 3,对文件的读写操作结束后,应该及时关闭文件.关闭 ,对文件的读写操作结束后,应该及时关闭文件 及时关闭文件.关闭 文件是调用fclose函数; 文件是调用fclose函数;
①,读操作:从已建立的文件中读取数据 读操作:从已建立的文件中读取数据 ②,写操作:建立一个新文件和向已建立的文件中追加数据,插入数据 写操作:建立一个新文件和向已建立的文件中追加数据,插入数据 或修改数据等
7,在C语言中,没有文件输入输出语句,对文件的读写都是用 ,在C语言中,没有文件输入输出语句,对文件的读写都是用 库函数来实现的. 库函数来实现的.
fp=fopen("student.dat", "r fp=fopen("student.dat", "r");
fp=fopen("score.dat", "wb+"); fp=fopen("score.dat", "wb+");
10/24
3,说明: 说明: "r"方式打开的文件 方式打开的文件, ①,用"r"方式打开的文件,只能读出数据而不能往文件中 写数据;而且要求文件已经存在 要求文件已经存在, 写数据;而且要求文件已经存在,不能打开一个并不存 在的文件,否则出错; 在的文件,否则出错; "w"方式打开的文件 方式打开的文件, ②,用"w"方式打开的文件,只能用于往文件中写数据而不 能读取数据. 能读取数据. 如果指定的文件不存在,则以指定的文件名建立新文件; 如果指定的文件不存在,则以指定的文件名建立新文件; 如果指定的文件存在, 如果指定的文件存在,将在打开文件的同时删除文件中 已有的数据; 已有的数据; ③,用"a"方式打开文件时,指定的文件一定要存在,否则 "a"方式打开文件时 指定的文件一定要存在, 方式打开文件时, 出错; 只能往文件中写数据,不能读取数据; 出错;且只能往文件中写数据,不能读取数据;自动将 数据写入文件末尾; 数据写入文件末尾; ④,用"r+", "w+", "a+"方式打开的文件,可以用来进行 "r+", "w+", "a+"方式打开的文件 方式打开的文件, 写数据; 读/写数据;
8/24
§10.3 文件的打开与关闭
一,打开文件函数 fopen 1,函数原型为: FILE *fopen(char *filename, char *mode) fopen( mode)
其中:①,filename指定要打开的文件名,可以为字符串常量或字符 filename指定要打开的文件名 指定要打开的文件名, 其中: 串变量 mode表示文件的使用方式 ②,mode表示文件的使用方式
⑦,在程序开始运行时,系统自动打开三个标准设备文件: 在程序开始运行时,系统自动打开三个标准设备文件: 标准输入设备(通常对应为键盘) 标准输出设备(显示器) 标准输入设备(通常对应为键盘),标准输出设备(显示器), 标准错误输出设备(通常也是显示器) 标准错误输出设备(通常也是显示器),相应的文件指针为 stdin,stdout,stderr stdin,stdout,stderr. 在使用方面,唯一的区别是不必用fopen打开文件就可以 在使用方面,唯一的区别是不必用 不必用fopen打开文件就可以 使用stdin,stdout,stderr这三个文件指针 这三个文件指针. 使用stdin,stdout,stderr这三个文件指针.
4/24
4,C语言把文件看作是一个字符(或字节)的序列,即由一个 语言把文件看作是一个字符(或字节)的序列, 一个字符(或字节)的数据顺序组成;称为"流式文件 流式文件". 一个字符(或字节)的数据顺序组成;称为"流式文件". 根据数据的组织形式,可分为文本文件 二进制文件. 根据数据的组织形式,可分为文本文件和二进制文件. 文本文件和 文本文件又称为ASCII码文件 码文件,即每一个字节存放着 文本文件又称为ASCII码文件,即每一个字节存放着 一个字符的ASCII码. 一个字符的ASCII码. 如:整数10000


为从文件中读出数据而打开文件 为往文件中写入数据而打开文件 为向文件尾部增加数据而打开文件 为读/ 为读/写而打开文件 为读/ 为读/写而建立一个新文件 为读/ 为读/写而打开文件 为从文件中读出数据而打开文件 为往文件中写入数据而打开文件 为向文件尾部增加数据而打开文件 为读/ 为读/写而打开文件 为读/ 为读/写而建立一个新文件 为读/ 为读/写而打开文件
内存中存储形式 00100111 00010000 二进制形式) (二进制形式) 文本存储形式: 00110001 00110000 00110000 00110000 00110000
二进制文件是把数据按其在内存中的存储形式原样存放. 二进制文件是把数据按其在内存中的存储形式原样存放. 用ASCII码形式输出与字符一一对应,一个字节代表一 ASCII码形式输出与字符一一对应,一个字节代表一 个字符,因而便于对字符进行逐个处理,也便于输出字符; 但一般占存储空间较多,而且要花费转换时间. 用二进制形式输出数值,可以节省外存空间和转换时间, 但一个字节并不对应一个字符,不能直接输出字符形式.
typedef struct { short level; /* 缓冲区"满"或"空"的程度 */ 缓冲区" unsigned flags; /* 文件状态标志 */ char fd; /* 文件描述符 */ unsigned char hold; /* 无缓冲区不读取字符 */ short bsize; /* 缓冲区的大小 */ unsigned char *buffer; /* 数据缓冲区的位置 */ unsigned char *curp; /* 指针当前指向 */ unsigned istemp; /* 临时文件指示器 */ short token; /* 用于有效性检查 */ }FILE ;
一批数据是以文件的形式存储在外部介质(磁盘,磁带,光盘等) 一批数据是以文件的形式存储在外部介质(磁盘,磁带,光盘等)上的.
2,文件操作的途径: 文件操作的途径: 操作系统对外部介质上的数据以文件为单位进行管理; 操作系统对外部介质上的数据以文件为单位进行管理; 不同的文件通过文件名来区分. 不同的文件通过文件名来区分. 如果想从外部介质上的文件中读取数据,必须先按文 如果想从外部介质上的文件中读取数据,必须先按文 件名找到所指定的文件,然后再从该文件中读出数据;如 件名找到所指定的文件,然后再从该文件中读出数据;如 果要向外部介质上存储数据也必须先建立一个文件或按指 果要向外部介质上存储数据也必须先建立一个文件或按指 定的文件名找到指定的文件,再把数据写入文件. 定的文件名找到指定的文件,再把数据写入文件. 3,前面的输入输出都是以终端为对象的;从操作系统的角度 看,每一个与主机相连的输入输出设备都看成是一个文件; 有时候需要将一些数据保存起来,这就要用到磁盘文件 有时候需要将一些数据保存起来,这就要用到磁盘文件. 磁盘文件.
相关文档
最新文档