C语言_文件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 文件格式化读/写函数: fscanf和fprintf
2014-11-20
19
《C语言程序设计》
8.3 文件的读写 1. 字符输入函数fgetc
8.3.1文件字符读/写
从指定文件读入一个字符,该文件必须是以读或读写方式 打开的。 fgetc函数的调用形式为:
字符变量=fgetc(文件指针);
8.1 文件概述 2. 从文件编码和数据的组织方式来看
8.1.1 文件的概念
文件可分为ASCII码文件和二进制码文件。 ASCII文件也称为文本文件,这种文件在磁盘中存放时每 个字符占一个字节,每个字节中存放相应字符的ASCII码,
内存中的数据存储时需要转换为ASCII码。
二进制文件是按二进制的编码方式来存放文件的,内存中 的数据存储时不需要进行数据转换,存储介质上保存的数据 采用与内存数据一致的表示形式存储。
《C语言程序设计》
8.1 文件概述
8.1.1 文件的概念
所谓“文件”是指一组相关数据的有序集合。这个数据集 有一个名称,叫做文件名。 在前面的章节中我们已经多次使 用了文件,例如源程序文件(.c)、目标文件(.obj)、可执 行文件(.exe)等。它们通常驻留在外部介质(如磁盘)上,
在使用时才调入内存。下面我们从不同的角度对文件作不同
盘文件中,得以长久保存。当有大量数据输入时,可通过编
辑工具事先建立输入数据的文件,程序运行时从指定文件读 入,从而实现数据一次输入多次使用。同样,当有大量数据 输出时,可以将其输出到指定的文件,并且任何时候都可以 查看结果文件。一个程序的运算结果还可以作为另外程序的
输入,进行进一步加工。
2014-11-20 4
的分类。
2014-11-20
Байду номын сангаас
5
《C语言程序设计》
8.1 文件概述 1. 从用户使用的角度看 文件可分为普通文件和设备文件两种。
8.1.1 文件的概念
普通文件是指驻留在磁盘或其它外部介质上的一个有序数 据集,可以是源文件、目标文件、可执行程序,也可以是一
组待输入处理的原始数据,或者是一组输出的结果。
fopen()函数中第一个形式参数可以包含路径和文件名两部
分。 例如:fp=fopen(“c:\\tc\\in.txt”;“r”);
2014-11-20
11
《C语言程序设计》
8.2 文件的打开与关闭 文件打开方式
文本文件(ASCII) 使用方式 "r" "w" "a" "r+" "w+" "a+"
《C语言程序设计》
8.2 文件的打开与关闭
8.2.2 文件的关闭操作
文件在使用完后应该及时关闭它,以防止它再被误用。 “关闭”就是释放文件指针。释放后的文件指针变量不再指 向该文件,为自由的文件指针。这种方式可以避免文件中的 数据丢失。释放指针后不能再通过该指针对原对应的文件进
行读写操作,除非再次用该指针变量打开该文件。
“a+”方式则保留文件原有的数据,进行追加或读的操作。
(4)在用文本文件向计算机输入时,应将回车和换行两个 字符转换为一个换行符;在输出时,应将换行符转换为回车 和换行两个字符。在用二进制文件时,不需进行这种转换, 因为在内存中的数据形式与输出到外部文件中的数据形式完
全一致,一一对应。
2014-11-20 15
{ printf(“Cannot open this file.\n”);exit(0);}
如果屏幕上显示“Cannot open this file.”,则表明打开文 件出错。出错的常见原因是:用“r”方式打开一个不存在的 文件。exit函数的作用是关闭所有文件,终止正调用的过程。 待程序员检查出错误,修改后再运行。
stdio.h头文件中,使用文件程序都需要包含
“#include<dtdio.h>”。 C语言中,用一个指针变量指向一个文件,这个指针称为 文件指针。通过文件指针就可对它所指的文件进行各种操作。 定义说明文件指针的一般形式为:
FILE *指针变量标识符
2014-11-20 8
《C语言程序设计》
行读写操作,除非再次用该指针变量打开该文件。
用fclose函数关闭文件,fclose函数调用的一般形式为: fclose(文件指针);
2014-11-20
17
《C语言程序设计》
8.2 文件的打开与关闭 例如: fclose(fp);
8.2.2 文件的关闭操作
用fopen()函数打开文件时所带回的指针赋给了fp,现把该 文件关闭。如果文件关闭成功,fclose函数返回值为0;如果
2014-11-20
7
《C语言程序设计》
8.1 文件概述
8.1.2 文件指针
在C语言程序中,无论是一股磁盘文件还是设备文件,都 可以通过文件结构类型的数据集合进行输入输出操作。文件 结构是由系统定义的,取名为FILE。FILE结构是用typedef 语句定义出的一种类型,并且这个结构实现已经被定义在
8.2 文件的打开与关闭 任何一个文件在使用之前要进行打开操作,使用之后关闭 操作。 这是因为操作系统对于同时打开的文件数目是有限制 的,DOS操作系统中,可以在DEVICE.SYS中定义允许同时 打开的文件数n(用files=n定义)。其中n 为可同时打开的文
件数,一般n<=20。因此在使用文件前应打开文件,才可对其
《C语言程序设计》
C语言程序设计
第8章
文
件
2014-11-20
1
《C语言程序设计》
【本章概要】
本章主要介绍文件的概念及其相关操作等内容,其中包
括用文件指针进行文件打开、关闭和读写操作等。通过本章
学习,要求了解磁盘文件的概念和用途;掌握文件指针的概 念和文件变量的定义方法;深刻理解文件的读、写等基本操 作的实现;熟悉文件的打开、关闭、读、写等函数的调用形 式;掌握文件操作在程序设计中的应用方法。
2014-11-20
23
《C语言程序设计》
8.3 文件的读写
8.3.1文件字符读/写
【例8-2】从键盘上输入一行字符,写入“test.txt”文件中。 #include "stdio.h" main() { FILE *fp; char ch; if((fp=fopen("test.txt","w"))==NULL) { printf("file created error.\n"); exit(0); } printf(“Input a string(ENTER for end input)\n”); while((ch=getchar())!=’\n’) fputc(ch,fp); fclose(fp); }
2014-11-20 22
《C语言程序设计》
8.3 文件的读写 2. 字符输出函数fputc
8.3.1文件字符读/写
fputc函数把一个字符写入到磁盘文件中。其一般形式为: fputc(字符变量,文件指针); 同样,fputc(ch,stdout)的作用是将字符变量ch的值在显示
器上输出,与函数putchar(ch)的功能完全相同。
例如,从fp指向的文件中读取一个字符并赋给字符变量ch, 则可写成: ch=fgetc(fp);
2014-11-20
20
《C语言程序设计》
8.3 文件的读写 【说明】
8.3.1文件字符读/写
(1)fgetc为字符读函数,因此之前必须以读或读写方式打 开文件; (2)在执行fgetc读字符时遇到文件结束符或出错,则函数
用fclose函数关闭文件,fclose函数调用的一般形式为: fclose(文件指针);
2014-11-20
16
《C语言程序设计》
8.2 文件的打开与关闭
8.2.2 文件的关闭操作
文件在使用完后应该及时关闭它,以防止它再被误用。 “关闭”就是释放文件指针。释放后的文件指针变量不再指 向该文件,为自由的文件指针。这种方式可以避免文件中的 数据丢失。释放指针后不能再通过该指针对原对应的文件进
返回一个文件结束标志EOF(-1)。当形参fp为标准输入文
件指针stdin时,则读文件字符函数fgetc(stdin)与终端输入函 数getchar()具有完全相同的功能。
2014-11-20
21
《C语言程序设计》
8.3 文件的读写
8.3.1文件字符读/写
【例8-1】在屏幕上显示文本文件readme.txt的内容。 #include “stdio.h” main() { FILE *fp; char ch; if((fp=fopen("readme.txt","r"))==NULL) { printf("file open error.\n"); exit(0); } while((ch=fgetc(fp))!=EOF) putchar(ch); fclose(fp); }
个新文件。 (2)用“a”方式打开文件时,向文件的尾部添加新数据, 文件中原来的数据保留,但要求文件必须存在,否则会返回 出错信息。打开文件时,文件的位臵指针在文件末尾。
2014-11-20
14
《C语言程序设计》
8.2 文件的打开与关闭 【说明】
8.2.1 文件的打开操作
(3)用“r +”、“w+”、“a+”方式打开文件时,既可 以输入也可以输出,不过三种方式是有区别的;“r+”方式 要求必须文件存在;“w+”方式则建立新文件后进行读写;
12
含
义
打开文本文件进行只 读 建立新文本文件进行 只写 打开文本文件进行追 加 打开文本文件进行读/ 写 建立新文本文件进行 读/写 打开文本文件进行读/ 写/追加
《C语言程序设计》
8.2 文件的打开与关闭
8.2.1 文件的打开操作
如果成功的打开一个文件,fopen()函数返回文件指针,否 则返回空指针(NULL)。由此可判断文件打开是否成功。 例如: if ((fp=fopen (“c:\\tc\\int.txt", "r"))==NULL)
设备文件是指与主机相连的各种外部设备,如显示器、打 印机、键盘等。在操作系统中,把外部设备也看作是一个文 件来进行管理,把它们的输入和输出等同于对磁盘文件的读 和写。通常把显示器定义为标准输出文件,一般情况下在屏
幕上显示有关信息就是向标准输出文件输出。
2014-11-20 6
《C语言程序设计》
中的信息进行存取。用完之后需要关闭,否则将会出现一些 意想不到的错误。所以对磁盘文件操作时,一定要养成“先 打开,后读写操作,最后关闭”的习惯。
2014-11-20
9
《C语言程序设计》
8.2 文件的打开与关闭
8.2.1 文件的打开操作
C语言用fopen()函数来实现文件的打开。fopen函数的调用 方式一般为: FILE *fp; fp=fopen(文件名,文件使用方式);
2014-11-20
13
《C语言程序设计》
8.2 文件的打开与关闭 【说明】
8.2.1 文件的打开操作
(1)用“w”方式打开文件时,只能从内存向该文件输出 (写)数据,而不能从文件向内存输入数据。如果该文件原 来不存在,则打开时按指定文件名建立一个新文件。如果原
来的文件已经存在,则打开时将文件删空,然后重新建立一
2014-11-20
8.2.1 文件的打开操作
二进制文件 使用方式 "rb" "wb" "ab" "rb+" "wb+" "ab+" 含 义 打开二进制文件进行 只读 建立二进制文件进行 只写 打开二进制文件进行 追加 打开二进制文件进行 读/写 建立二进制文件进行 读/写 打开二进制文件进行 读/写/追加
关闭出错,则返回值为EOF(-1)。这可以用ferror函数来测
试,当然也可以根据函数的返回值自己编程判断文件是否关 闭成功。
2014-11-20
18
《C语言程序设计》
8.3 文件的读写 文件的读和写是最常用的文件操作,C语言提供了多种文 件读写函数: • 文件字符读/写函数: fgetc和fputc • 文件字符串读/写函数: fgets和fputs
fopen()函数中第一个形式参数可以包含路径和文件名两部
分。 例如:fp=fopen(“c:\\tc\\in.txt”;“r”);
2014-11-20
10
《C语言程序设计》
8.2 文件的打开与关闭
8.2.1 文件的打开操作
C语言用fopen()函数来实现文件的打开。fopen函数的调用 方式一般为: FILE *fp; fp=fopen(文件名,文件使用方式);
2014-11-20
2
《C语言程序设计》
第1章
C语言程序设计基础
8.1 文件概述 8.2 文件的打开与关闭 8.3 文件的读写
2014-11-20
3
《C语言程序设计》
8.1 文件概述 程序在实现过程中,运行程序所需要的数据是通过键盘输 入的,程序运行的结果只显示在屏幕上。当一个程序运行完 成或终止运行,所有的变量的值不再保存。 文件是解决上述问题的有效方法,它通过把数据存储在磁