欢迎来到天天文库
浏览记录
ID:50319976
大小:228.00 KB
页数:32页
时间:2020-03-08
《C程序设计 教学课件 作者 赵山林 12.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第12章文件12.1文件概述12.2文件的使用12.3文件程序设计举例12.1文件概述12.1.1文件的概念“文件”是指一组相关信息的有序集合。程序文件是程序代码的有序集合,数据文件是一组数据的有序集合。通常,文件是驻留在外部介质(如磁盘等)上的,只有在使用时才调入到内存中。每个文件都有一个名字,叫做文件名。计算机操作系统就是根据文件名对各种文件进行存取和处理的。文件按存放设备可分为磁盘文件和设备文件两种。文件按数据的组织形式又可分为ASCII码文件和二进制文件两种。图12.1ASCII码文件存储形式
2、ASCII码文件可在屏幕上按字符显示。通常,源程序文件都是ASCII文件。二进制文件是按二进制的编码方式来存放文件的。二进制文件中的数据与该数据的二进制形式是一致的。例如,同样的整数6843,转化为二进制数为1101010111011,在二进制文件中只占用两个字节,其存储形式如图12.2所示:图12.2二进制文件存储形式12.1.2缓冲文件系统文件根据数据存取的实现过程,分为缓冲文件系统和非缓冲文件系统。缓冲文件系统又称为高级文件系统,是指系统会自动为每一个正在使用的文件开辟一个内存缓冲区来输入和输出
3、数据。非缓冲文件系统又称为低级文件系统,系统不自动为文件开辟缓冲区,而是由用户根据所处理的数据的大小在程序中自己设置缓冲区。12.2文件的使用对文件进行操作时,一般来说应遵循以下步骤。(1)打开文件(2)文件处理(3)关闭文件12.2.1文件类型指针文件类型指针定义的一般形式为:FILE*指针变量名;其中大写的FILE是文件类型定义符,指针变量名用于指向一个文件,存放的是文件缓冲区的首地址。例如,FILE*fp;12.2.2文件的打开fopen()函数用来打开一个文件,其调用的一般形式为文件指针名=f
4、open("文件名","访问方式")其中,“文件指针名”必须是被说明为FILE类型的指针变量,“文件名”是一个字符串,是要打开的文件的名字。“访问方式”是指文件的类型和操作要求。例如:FILE*fp1;fp1=("a.out","r");C语言中,访问文件的方式共有12种,表12-1给出了它们的符号和意义。其中:r(read)表示读,w(write)表示写,a(append)表示追加,t(text)表示文本文件,可省略不写;b(banary)表示二进制文件,+表示读和写。12.2.3文件的关闭操作系统
5、对可以同时打开的文件数量有一定限制,当打开的文件个数很多时,会影响到对其他文件的操作,所以要及时关闭不使用的文件。函数fclose()用来关闭一个文件。其调用的一般形式是:fclose(文件指针)该函数将返回一个整数,正常完成关闭文件时,fclose()函数返回值为0,如返回非零值则表示有错误发生。例如:FILE*fp;fp=("a.out","r");fclose(fp);12.2.4文件的读写一个文件打开之后,就可以用标准库中提供的文件读写函数进行读写,对文件的读和写是最常用的文件操作。在C语言中
6、提供了多种文件读写的函数。字符读写函数:fgetc()和fputc()字符串读写函数:fgets()和fputs()数据块读写函数:fread()和fwrite()格式化读写函数:fscanf()和fprintf()使用以上函数都要求包含头文件"stdio.h"。1.fgetc()和fputc()函数字符读写函数fgetc()和字符读写函数fputc()是以字符为单位的,每次只可从文件读出或向文件写入一个字符。(1)读字符函数fgetc()fgetc()函数的功能是从指定的文件中读一个字符,函
7、数调用的一般形式为字符变量=fgetc(文件指针)例如:charch;ch=fgetc(fp);(2)写字符函数fputc()fputc()函数的功能是把一个字符写入指定的文件中,函数调用的一般形式为:fputc(字符量,文件指针)其中,待写入的字符量可以是字符型常量或变量。例如:fputc(ch,fp);例12.2从键盘输入一行字符,写入到一个文件,再把该文件内容显示在屏幕上。#include"stdio.h"main(){FILE*fp;charch;if((fp=fopen("file12_1.
8、txt","w"))==NULL){printf("Cannotopenthisfile!");exit(0);}while((ch=getchar())!='')fputc(ch,fp);fclose(fp);if((fp=fopen("file12_1.txt","r"))==NULL){printf("Cannotopenthisfile!");exit(0);}ch=fgetc(fp);while(ch!=EOF){putchar(c
此文档下载收益归作者所有