预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共97页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第10章对文件的输入输出10.1C文件的有关基本知识10.1.1什么是文件10.1.1什么是文件10.1.1什么是文件10.1.1什么是文件10.1.1什么是文件10.1.1什么是文件10.1.1什么是文件10.1.1什么是文件10.1.1什么是文件10.1.2文件名10.1.2文件名10.1.2文件名10.1.2文件名10.1.2文件名10.1.3文件的分类10.1.3文件的分类10.1.3文件的分类10.1.4文件缓冲区10.1.4文件缓冲区10.1.4文件缓冲区10.1.4文件缓冲区10.1.5文件类型指针10.1.5文件类型指针10.1.5文件类型指针10.2打开与关闭文件10.2.1用fopen函数打开数据文件10.2.1用fopen函数打开数据文件10.2.1用fopen函数打开数据文件10.2.1用fopen函数打开数据文件10.2.1用fopen函数打开数据文件说明: (1)用“r”方式打开的文件只能用于向计算机输入而不能用作向该文件输出数据,而且该文件应该已经存在,并存有数据,这样程序才能从文件中读数据。 不能用“r”方式打开一个并不存在的文件,否则出错。说明: (2)用“w”方式打开的文件只能用于向该文件写数据(即输出文件),而不能用来向计算机输入。 如果原来不存在该文件,则在打开文件前新建立一个以指定的名字命名的文件。 如果原来已存在一个以该文件名命名的文件,则在打开文件前先将该文件删去,然后重新建立一个新文件。说明: (3)如果希望向文件末尾添加新的数据(不希望删除原有数据),则应该用“a”方式打开 但此时应保证该文件已存在;否则将得到出错信息。 打开文件时,文件读写标记移到文件末尾说明: (4)用r+、w+、a+方式打开的文件既可以用来输入数据,也可以用来输出数据。 用r+方式时该文件应该已经存在。 用w+方式则新建立一个文件,先向此文件写数据,然后可以读此文件中的数据。 用a+方式打开的文件,原来的文件不被删去,文件读写位置标记移到文件末尾,可以添加,也可以读。说明: (5)如果打开失败,fopen函数将会带回一个出错信息。fopen函数将带回一个空指针值NULL 常用下面的方法打开一个文件: if((fp=fopen(“file1”,’r″))==NULL) {printf(“cannotopenthisfile\n”); exit(0); }说明: (6)C标准建议用表10.1列出的文件使用方式打开文本文件或二进制文件,但目前使用的有些C编译系统可能不完全提供所有这些功能说明: (7)计算机输从ASCII文件读入字符时,遇到回车换行符,系统把它转换为一个换行符,在输出时把换行符转换成为回车和换行两个字符。在用二进制文件时,不进行这种转换,在内存中的数据形式与输出到外部文件中的数据形式完全一致,一一对应。说明: (8)程序中可以使用3个标准的流文件:标准输入流、标准输出流、标准出错输出流。 系统已对这3个文件指定了与终端的对应关系 标准输入流是从终端的输入 标准输出流是向终端的输出 标准出错输出流是当程序出错时将出错信息发送到终端程序开始运行时系统自动打开这3个标准流文件。因此,程序编写者不需要在程序中用fopen函数打开它们。所以以前我们用到的从终端输入或输出到终端都不需要打开终端文件。10.2.2用fclose函数关闭数据文件10.3顺序读写数据文件10.3顺序读写数据文件10.3.1怎样向文件读写字符例10.1从键盘输入一些字符,逐个把它们送到磁盘上去,直到用户输入一个“#”为止。 解题思路:用fgetc函数从键盘逐个输入字符,然后用fputc函数写到磁盘文件即可。#include<stdio.h> #include<stdlib.h> intmain() {FILE*fp; charch,[10]; printf("请输入所用的文件名:"); scanf("%s",); if((fp=fopen(,“w”))==NULL) {printf("无法打开此文件\n"); exit(0); } ch=getchar(); printf(“请输入一个字符串(以#结束):"); ch=getchar(); while(ch!=‘#’) {fputc(ch,fp); putchar(ch); ch=getchar(); } fclose(fp); putchar(10); return0; } 例10.2将一个磁盘文件中的信息复制到另一个磁盘文件中。今要求将上例建立的文件中的内容复制到另一个磁盘文件中。 解题思路:处理此问题的算法是:从文件中逐个读入字符,然后逐个输出到中。#include<stdio.h> #include<stdlib.h> intmain() {FILE*in,*out;