文档详情

《C语言程序设计》课件_第10章 文件.ppt

发布:2025-04-17约1.14万字共31页下载文档
文本预览下载声明

第10章文件10.1文件指针10.2指针变量10.1文件指针10.1.1文件类型指针10.1.2文本文件和二进制文件10.1.3文件的打开与关闭10.1.1文件类型指针在程序想要使用文件的时候,首先必须要能够找到这个文件,这就需要文件类型的指针变量。可以定义一个文件类型的指针变量,然后使这个指针变量指向某一个文件的结构体变量,从而通过该结构体变量中的文件信息访问该文件。也就是说,通过文件指针变量能够找到与它相关的文件。例如:FILE*fp;在这里,fp是一个指向FILE类型结构体变量的指针变量,当文件打开时,系统自动建立文件结构体,并把指向它的指针返回来,程序通过这个指针获得文件信息,访问文件;文件关闭后,它的文件结构体被释放。如果有n个文件,一般应定义n个指向FILE类型结构体的指针变量,将它们分别指向n个文件,即指向存放该文件信息的结构体变量,以实现对文件的访问。例10.1以下程序打开新文件f.txt,并调用字符输出函数将a数组中的字符写入其中。#includestdio.hmain(){ *fp; chara[5]={1,2,3,4,5},i;fp=fopen(f.txt,w);for(i=0;i5;i++)fputc(a[i],fp);fclose(fp);}分析:此题下划线处为填空位置,在这里应该首先定义一个文件类型则指针变量fp,所以答案是FILE。C程序通过操作系统访问磁盘上的文件如图10.3所示。10.310.1.1文件类型指针返回10.1.2文本文件和二进制文件C语言把文件看作是一个字符(字节)的序列,即由一个一个字符(字节)的数据顺序组成。根据数据的组织形式,可分为ASCII文件和二进制文件。ASCII文件又称为文本文件,它的每一个字节存放一个ASCII代码,代表一个字符;而二进制文件则是把内存中的数据按其在内存中的存储形式原样输出到磁盘上存放。例如整数12345,假设其为int类型,则其在内存中表示为“0011000000111001”,只占两个字节,共十六位,那么12345的二进制文件也为“0011000000111001”。而当把这个数字输出到终端屏幕或者打印时,系统会自动将其翻译成“12345”五个字符,便于人们读它,表示为“0011000100110010001100110011010000110101”,其中每个字符占一个字节,五个字节共40位,这种数据组成的文件称为文本文件。如图10.4所示。图10.412345的二进制文件表示和文本文件表示10.1.2文本文件和二进制文件任何文本文件都可以在终端上显示,而二进制文件却不能,当然也不能打印,二进制文件只能由计算机去读。用ASCII文件输出时,其与字符是一一对应的,一个字节代表一个字符,因而便于对字符进行逐个处理,便于输出字符,但一般占存储空间较多,并且因为要进行二进制形式和ASCII码之间的转换,需要花费转换的时间;而二进制文件所有字节存储的都是二进制数,以二进制文件形式输出数据,可以节省外存空间和转换时间。由前所知,一个C语言文件是一个字节流或者二进制流,它把数据看作是一连串的字符(字节),在C语言中对文件的存取是以字符(字节)为单位的,输入输出的数据流的开始和结束仅受程序控制,我们把这种文件又称为流式文件。C语言允许对文件存取一个字符,这就增加了处理的灵活性。10.1.2文本文件和二进制文件例10.2下列关于C语言文件的叙述中正确的是A)文件由一系列数据依次排列组成,只能构成二进制文件B)文件由结构序列组成,可以构成二进制文件或文本文件C)文件由数据序列组成,可以构成二进制文件或文本文件D)文件由字符序列组成,其类型只能是文本文件分析:参照本节对文件定义,根据数据的组织形式,文件可分为ASCII文件和二进制文件,所以正确答案是C。返回10.1.3文件的打开与关闭文件使用的方式是首先打开文件,然后进行文件的读/写操作,文件使用完毕以后要关闭文件。文件的打开使用标准输入输出函数库中的fopen()函数。fopen()函数功能是按指定方式打开文件。如果文件正常打开,其返回值为指向文件结构体的指针;如果文件打开失败,其返回值为NULL。fopen()函数的原型如下:格式:FILE*fopen(char*name,char*mode)其中*name为要打开的文件名,*mode为使用文件的方式(见表10-1)。fopen函数的调用方式通常为:FILE*fp;fp=fopen(“test.c”,“w”);这段代码表示打开文件名为“tes

显示全部
相似文档