第12章 高级语言程序设计C--文件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
+的意思是读和写都允许。+经常与这6种方式一起,如:rt+,rb+,w+,等
计算机科学与技术学院—— C语言程序设计
11.2 缓冲型文件的打开、关闭和读写
关闭文件 关闭文件是指的断开指针与文件之间的联系,释放文件缓冲区
fclose()函数,文件关闭函数,当文件调用结束后,要使用fclose()函 数把文件关闭。
Βιβλιοθήκη Baidu
计算机科学与技术学院—— C语言程序设计
11.2 缓冲型文件的打开、关闭和读写
键盘输入字符串,将字符串记录到指定文本文件中,最后在 屏幕上打印出这个文本文件中的内容字符串以回车结束
#include <stdio.h> while ((c = getchar( )) != '\n'){ fputc(c, fp); } fclose(fp); if ((fp = fopen(file,"r")) == NULL){ printf("open error on reading\n"); exit(0); }
void main( ){
FILE *fp; char c; char file[30]; printf("input directory and file: "); gets(file); if ((fp = fopen(file,"w")) == NULL){
printf("open error on writing in\n");
计算机科学与技术学院—— C语言程序设计
11.2 缓冲型文件的打开、关闭和读写 fread() 函数 fread的一般形式为: fread(buffer, size, n, fp); •若操作成功,从fp所指向的文件中,读取n个数据 项,存放到buffer指针所指向的内存区域,并且返回 读出的数据项个数 •若文件结束或操作失败,则返回0
}
while ((c = fgetc(fp))!= EOF) putchar(c); fclose(fp);
}
计算机科学与技术学院—— C语言程序设计
11.2 缓冲型文件的打开、关闭和读写
fputc() 函数: fputc()往文本文件中写入一个字符
若操作成功,则返回写入的字符,若操作不成功,则返回 EOF 。
9
对应的ASCII码为57
00110000
二进制表达为00111001
00110000 00111001
00110010
二进制文件
2009如果用二进制文件保存的话,首先要将2009这个数字转换为二进制数: 00000111 11011001 占两个字节,不足部分补0。
计算机科学与技术学院—— C语言程序设计
计算机科学与技术学院—— C语言程序设计
11.2 缓冲型文件的打开、关闭和读写
打开文件 实际上就是让文件指针指向一个内存区域,文件的各种信息被调入并 存放在这个内存区域中 fopen()函数,文件打开函数,用来以一个特定的打开方式来打开一个文 件 一般形式为: FILE *fp; fp = fopen(文件名,文件打开方式); fp为文件指针,这个指针指向FILE结构体变量的首地址。 文件名为被打开文件的名字;在名字之前,可以加上路径;文件名, 可以是字符数组或者字符串常量。 文件打开方式,则是要如何操作文件。
short
}FILE;
token; /* Used for validity checking */
计算机科学与技术学院—— C语言程序设计
11.1 文件 FILE类型的指针变量声明为: FILE *fp; fp为指针变量 按照结构体中的成员变量所提供的信息,就可以找到文 件,对文件进行操作
‘1’
二进制文件
保存为 49
以内存中的二进制编码保存。这些文件人是没办法读懂的
计算机科学与技术学院—— C语言程序设计
11.1 文件
两种文件存储2009的区别 ASCII码文件 如果用ASCII码来保存的话,需要将2009看成占4个字节的字符串。。 2 0 0 对应的ASCII码为50 对应的ASCII码为48 对应的ASCII码为48 二进制表达为00110010 二进制表达为00110000 二进制表达为00110000
exit(0); } }
while ((c = fgetc(fp)) != EOF)
putchar(c); fclose(fp);
计算机科学与技术学院—— C语言程序设计
11.2 缓冲型文件的打开、关闭和读写
fread() 函数与fwrite()函数: fread与fwrite是用来整块的读写数据的。
这三个标准文件分别是:
标准输入文件,指针为stdin:键盘。 标准输出文件,指针为stdout:显示器。 标准错误输出文件,指针为stderr:输出错误信息
计算机科学与技术学院—— C语言程序设计
11.2 缓冲型文件的打开、关闭和读写 操作文件的步骤: 打开文件 使用(包括读或写) 关闭文件。
计算机科学与技术学院—— C语言程序设计
11.1 文件 设备文件 C把各种外设看成是设备文件。 对显示器的输出看成是对设备文件进行写操作 键盘的输入,看成是设备文件的读操作
显示器是标准输出文件
键盘是标准输入文件。
计算机科学与技术学院—— C语言程序设计
11.1 文件
磁介质存储文件 ASCII码文件 有的文件按照ASCII码进行存储这种文件,能够被人所看懂。ASCII码保存的 文件被称为文本文件。 如: ‘ A’ ‘a’ 保存为 保存为 65 97
计算机科学与技术学院—— C语言程序设计
11.2 缓冲型文件的打开、关闭和读写
打开方式: 由r(read),w(write),a(append),t(text),b(binary),+,组合而成 对文本文件(text)的基本操作:rt(只读文本文件)、wt(只写文本文 件)、at(追加文本文件) 对二进制文件(binary)的基本操作: rb(只读二进制文件)、wb(只 写二进制文件)、ab(追加二进制文件) 书写的时候对表达文本文件的t可以省略 r表达的是只读方式,以只读方式将文件打开,将文件信息调入内存;若 文件打开不成功,则返回NULL。 w表达的是只写方式,以只写方式将文本文件打开。若文件不存在,则 在磁盘上相应的位置新建一个文件;若文件已存在,则去除掉原来该文 件中所有信息,重新往该文件中写入缓冲区信息 a表达的是追加方式,以只写方式将文本文件打开。若文件不存在,则返 回空值NULL;若文件已存在,在原来的文件数据后,写入缓冲区信息。
键盘输入字符串,将字符串记录到指定文本文件中,最后在 屏幕上打印出这个文本文件中的内容字符串以回车结束
#include <stdio.h> while ((c = getchar( )) != '\n'){ fputc(c, fp); } fclose(fp); if ((fp = fopen(file,"r")) == NULL){ printf("open error on reading\n"); exit(0); }
计算机科学与技术学院—— C语言程序设计
11.2 缓冲型文件的打开、关闭和读写 fwrite() 函数 fwrite的一般形式为: fwrite(buffer, size, n, fp); •若操作成功,则将buffer指针所指向的内存区域中 的n个数据项,写入fp所指向的文件中, •若操作失败,则返回0
若操作成功,则返回读入的字符,若操作不成功,或者文件结 束,则返回EOF。
一般使用方式: char ch; FILE *fp;
文件以只读或者读写打开之后,
ch = fgetc(fp); 将fp指针指向的那个文件中的一个字符读出来,赋值给ch,
计算机科学与技术学院—— C语言程序设计
11.2 缓冲型文件的打开、关闭和读写
一般形式为: fclose(fp); fp为文件指针,这个指针指向FILE结构体变量的首地址。 正常关闭的时候将返回0值,而发生错误的时候返回非0。 。
计算机科学与技术学院—— C语言程序设计
11.2 缓冲型文件的打开、关闭和读写
fgetc() 函数: fgetc()从文件中读取一个字符
unsigned char hold;
/* Ungetc char if no buffer */
short
bsize; /* Buffer size
*/
unsigned char *buffer; /* Data transfer buffer */ unsigned char *curp; /* Current active pointer */ unsigned istemp; /* Temporary file indicator */
void main( ){
FILE *fp; char c; char file[30]; printf("input directory and file: "); gets(file); if ((fp = fopen(file,"w")) == NULL){
11.1 文件 从普通文件读数据时,从磁盘文件中读一批数据到划分 出的缓冲区中,然后从缓冲区将数据逐个送入相对应的 变量中;
向文件写数据时,是先将变量中数据送到缓冲区,在缓 冲区满后,将缓冲区内的数据一起存到普通磁盘文件中。
计算机科学与技术学院—— C语言程序设计
11.1 文件
用一个指针变量指向一个文件,通过对文件指针的操作, 来对这个指针所指向的文件进行操作。 文件指针声明的一般形式为: FILE *指针变量名;
不必弄清楚FILE的每一个细节,只用声明一个指针变量, 指向这内存中划出的FILE结构体变量空间的首地址就可 以了
计算机科学与技术学院—— C语言程序设计
11.1 文件 标准文件 标准文件是特殊的设备文件,显示器、键盘和错误 输出文件。这些标准文件指针是C定义的,并由C自 动打开和关闭。
一般使用方式: fputc(字符,文件指针); 将字符写入到文件指针所指的那个文件中去
文件必须以只写或者读写或者追加方式打开
使用a方式,则是从已存在的文件尾部,继续写入。
计算机科学与技术学院—— C语言程序设计
使用w方式,文件内部指针会从文件头开始,重新写入,
11.2 缓冲型文件的打开、关闭和读写
FILE为系统定义的一个结构体,这个结构体中,包含有 文件的各种信息。如:文件名,文件当前位置,文件状 态,缓冲区大小等等
FILE是包含在<stdio.h>中
计算机科学与技术学院—— C语言程序设计
11.1 文件
FILE的定义为:
typedef struct { short unsigned char level; /* fill/empty level of buffer */ flags; /* File status flags fd; /* File descriptor */ */
第十一章
文件
计算机科学与技术学院—— C语言程序设计
第五章 循环结构程序设计 内容提要
文件 缓冲型文件的打开、关闭与读写 文件I/O
计算机科学与技术学院—— C语言程序设计
11.1 文件
文件:就是存储在外部存储介质上的数据的有序集合; 存储在磁介质上的文件即使在断电之后,依然能够保存。 C语言的源文件存储为*.c文件,经过编译后得到的目标 文件存储为*.obj,生成的可执行文件,存储为*.exe文 件。 C的文件分为两大类,普通文件和设备文件。 C对文件的存取是以字符为单位的。
从一个已知的文件中读入所有的字符,打印显示到屏幕上
#include <stdio.h> void main( ){ FILE *fp; char c; char file [30]; printf("input directory and file: ");
gets(file);
if ((fp = fopen(file,"r")) == NULL){ printf("open error on reading\n ", file); exit(0);