C语言文件处理(附件)PPT教学课件
合集下载
C语言——File文件操作PPT课件
文件使exi用t(0方); 式:打开文件-->文件读/写-->关闭文件 系}统自动打开和关闭三个标准文件:
❖标准输入------键盘
stdin
例 FILE *fp;
❖标准输出------显示器
stdout
fp= fopen (“c
❖标准出错输出-----显文示件器使用方s式tderr
打开文件fopen “r/rb” (只读)
缓冲文件系统: 非缓冲文件系统:
程序 输入文件缓冲区
指令区
程序数据区 用a 户数据区
磁盘文件 磁盘
缓冲区输出文件缓冲区
§文件类型指针
文件结构体FILE
❖ 缓冲文件系统为每个正使用的文件在内存开辟文件信 息区
❖文件信息用系统定义的名为FILE的结构体描述 ❖FILE定义在stdio.h中
typedef struct { int _fd; //文件号
开失败,为NULL “w+/wb+” (读写)
为读/写建立一个文本
“a+/ab+” (读写)
为读/写打开或建立一个文
文件关闭fclose
❖作用:使文件指针变量与文件“脱钩”,释放文件结构 体和文件指针
❖函数原型:int fclose(FILE *fp) ❖功能:关闭fp指向的文件 ❖返值:正常关文闭件为打0;出开错时时返,回非的0 文件类型指针
#define getchar( ) fgetc(stdin)
o.例h> 从键盘输入字符,逐个 #include <stdio.h>
存到磁盘文件中,直到 main()
out; 输入‘#“为止 [10],outfile[10];
nfile);
❖标准输入------键盘
stdin
例 FILE *fp;
❖标准输出------显示器
stdout
fp= fopen (“c
❖标准出错输出-----显文示件器使用方s式tderr
打开文件fopen “r/rb” (只读)
缓冲文件系统: 非缓冲文件系统:
程序 输入文件缓冲区
指令区
程序数据区 用a 户数据区
磁盘文件 磁盘
缓冲区输出文件缓冲区
§文件类型指针
文件结构体FILE
❖ 缓冲文件系统为每个正使用的文件在内存开辟文件信 息区
❖文件信息用系统定义的名为FILE的结构体描述 ❖FILE定义在stdio.h中
typedef struct { int _fd; //文件号
开失败,为NULL “w+/wb+” (读写)
为读/写建立一个文本
“a+/ab+” (读写)
为读/写打开或建立一个文
文件关闭fclose
❖作用:使文件指针变量与文件“脱钩”,释放文件结构 体和文件指针
❖函数原型:int fclose(FILE *fp) ❖功能:关闭fp指向的文件 ❖返值:正常关文闭件为打0;出开错时时返,回非的0 文件类型指针
#define getchar( ) fgetc(stdin)
o.例h> 从键盘输入字符,逐个 #include <stdio.h>
存到磁盘文件中,直到 main()
out; 输入‘#“为止 [10],outfile[10];
nfile);
《c语言文件操作》课件
2 已知的问题和未来
的发展趋势
已知的问题包括文件操 作时的错误处理和异常 处理,未来的发展趋势 可能涉及更高效的文件 存储和访问方式。
3 后续学习建议
为了更深入地理解文件 操作,建议学习相关的 操作系统和计算机网络 知识。
通过使用文件删除函数,我 们可以从计算机上删除不再 需要的文件。
修改文件
通过使用文件修改函数,我 们可以更改文件的内容、属 性或名称。
目录和路径操作
1 目录的概念和分类
目录是文件在计算机文件系统中的组织方式,可以按照层次结构进行分类。
2 目录操作函数
通过使用目录操作函数,我们可以创建、删除和管理文件系统中的目录。
《c语言文件操作》PPT课 件
这个《c语言文件操作》PPT课件将介绍文件的概念、读写操作、创建和删除 操作、目录和路径操作、随机文件读写、文件访问控制、应用场景、实例操 作演示以及总结与展望。
文件的概念和分类
文件的概念
文件是存储在计算机上的数据集合,可以是文本文件、二进制文件或其他形式的文件。
文件的分类
通过使用文件操作函数,我 们可以读取并输出本地文件 夹下的所有文件名。
按行读取文本文件内容
通过使用文件读取函数,我 们可以按行读取文本文件内 容并进行相应的处理。
Байду номын сангаас
二进制文件读写操作
通过使用二进制读写函数, 我们可以对二进制文件进行 读取和写入操作。
总结与展望
1 C语言文件操作的
优点和不足
文件操作是C语言中重 要的编程技术,具有访 问数据的灵活性,但也 需要注意数据安全和文 件管理的问题。
文件可以按照其内容和用途进行分类,例如文本文件、图像文件、音频文件和视频文件等。
第10章 文件处理程序设计PPT课件
5 (53)
二进制文件形式 00110000 00111001
ASCII文件与二进制文件的区别
❖ASCII码文件可在屏幕上按字符显示,例如 源程序文件就是ASCII文件,用DOS命令 TYPE可显示文件的内容。
❖由于是按字符显示,因此能读懂文件内容。 占用存储空间大,在进行读、写操作时要 进行二进制与十进制之间的相互转换,效 率低。
❖十进制整数12345的存储,按ASCII码 形式存储占用5个字节,而采用二进制形式 存储只需要2个字节。
文件在内存中的存储
内存存储形式 00110000 00111001
ASCII文件(文本文件)形式
00110001 00110010 00110011 00110100 00110101
1 的 ASCII 2 (50) 3 (51) 4 (52) 码为(49)
while((ch=fgetc(fp1))!=EOF) /* 读第一个文件的字符 */
fputc(ch,fp2);
/* 复制到第二个文件 */
fclose(fp1); /* 关闭文件1 */ fclose(fp2); /* 关闭文件2 */
return 0;
关闭 文件
}
文件的概念
❖所谓“文件”一般指存储在介质上的数据的集 合。
❖缓冲文件系统是指操作系统在内存中为每 一个正在使用的文件开辟一个读写缓冲区。
内
存
程序数据区
输 输入缓冲区 入
输出 输出缓冲区
输入 (读)
输出 (写)
外存 文件
❖在输入数据时,先把数据从磁盘读到“输 入缓冲区”,等输入缓冲区已满或强制把 它清空时再把其中的数据送到程序数据区 进行处理。
❖在C语言中,文件就是由一个一个的字符或字 节的数据顺序组成的字符或字节序列。
c语言从入门到精通第十二章文件处理精品PPT课件
} 程序中用到fcloseall()函数,具体使用说明如下: int fcloseall(void) 该函数的作用是一次关闭所有被打开的文件。如果函数执行成功,它将返回成功关闭文件的数目,如果 出错,则返回EOF常量。该函数原型在stdio.h中。
同时显示两个文件内容
编程实现将两个不同文件中的内容在屏幕中的指定位置显示出来。(范例位置:光盘\TM\fl\12\2)
#include <stdio.h>
#include<conio.h>
main()
{
FILE *fp1,*fp2;
/*定义两个指向FILE类型结构体的指针变量*/
char [50], [50], a;
printf("please input :\n");
scanf("%s", ); 件所在路径及名称*/
printf("file3:\n");
if ((fp3 = fopen(file3, "rb")) != NULL)
{
ch = fgetc(fp3);
/*读取文件3中内容*/
while (ch != EOF)
{
putchar(ch);
ch = fgetc(fp3);
}
关闭打开的所有文件
} else { printf("can not open!"); exit(1); } /*调用fcloseall()函数关闭打开的文件,将返回值赋给*/ = fcloseall(); printf("\n%d files colsed", ); return 0;
char file1[20], file2[20], file3[20], ch;
同时显示两个文件内容
编程实现将两个不同文件中的内容在屏幕中的指定位置显示出来。(范例位置:光盘\TM\fl\12\2)
#include <stdio.h>
#include<conio.h>
main()
{
FILE *fp1,*fp2;
/*定义两个指向FILE类型结构体的指针变量*/
char [50], [50], a;
printf("please input :\n");
scanf("%s", ); 件所在路径及名称*/
printf("file3:\n");
if ((fp3 = fopen(file3, "rb")) != NULL)
{
ch = fgetc(fp3);
/*读取文件3中内容*/
while (ch != EOF)
{
putchar(ch);
ch = fgetc(fp3);
}
关闭打开的所有文件
} else { printf("can not open!"); exit(1); } /*调用fcloseall()函数关闭打开的文件,将返回值赋给*/ = fcloseall(); printf("\n%d files colsed", ); return 0;
char file1[20], file2[20], file3[20], ch;
c语言教材第9章文件PPT教学课件
“w” ( 只 写 ) 为 输 出 打 开 一 文 本 文 件
“a” ( 追 加 ) 向 文 本 文 件 尾 加 数 据
“rb’ ( 只 读 ) 为 输 入 打 开 一 二 进 制 文 件
“wb” ( 只 写 ) 为 输 出 打 开 一 二 进 制 文 件
“ab” ( 追 加 ) 向 二 进 制 文 件 尾 加 数 据
运行结果:
test.txt 的内容是
3,4.50
} 2020/12/10
14
14
5. 文件定位
文件中有一个位置指针,指向当前读写的位置。 我们可以使用有关函数来改变其位置。
• 二进制文件:把内存中的数据按其在内存中的存 储形式原样输出到磁盘文件上。
4. 输入和输出方式
• 缓冲文件系统:系统自动在内存区为每一个正在
使用的文件名开辟一个缓冲区。从内存向磁盘输
出数据必须先送到内存的缓冲区中,装满缓冲区
后在一起送到磁盘中去。如果从磁盘向内存读入
数据,则一次从磁盘文件将一批数据
/* 文件操作模式 */ /* 下一个字符位置 */ /* 文件缓冲区位置 */
}FILE;
2020/12/10
7
7
2.文件类型指针
例: 定义一个FILE类型的数组
FILE -efile [-MAXFILE]; -MAXFILE: 数组元素个数,也就是可使用文件的
最大数目。
例:定义一个文件指针变量
“w b+ ’ ( 读 写 ) 为 读 /写 建 立 一 新 二 进 制 文 件
“ab+ ” ( 读 写 ) 为 读 /写 打 开 一 二 进 制 文 件
2020/12/10
11
11
C语言文件ppt..
图 8-1 数据在文本文件和二进制文件中的存储区别
8.1 文件概述
文件的分类
根据文件的存取方式,数据文件可分为顺序文件和随机文件。 (1)顺序存取只能依先后次序存取文件中的数据,存取完
第一字节,才能存取第二字节;存取完第n-1字节,才能存取第n 字节。
(2)随机存取也称直接存取,可以直接存取文件中指定的 数据,例如,可以直接存取指定的第i个字节(或字符),而不 管第i-1字节是否已经存取。
if ( ( fp = fopen (file, model) ) == NULL ) { printf ("Cannot open file of %s.\n",file); exit (0); }
else return fp; }
8.2 文件的打开与关闭
8.2.2 文件的关闭
fclose()函数
在以上述方式打开文件时,如果出现“打开”错误, fopen()函数返回空指针值,程序就显示以下信息:
cannot open this file ! 并退出当前的调用过程。
为了以后方便打开文件并且判断是否正确打开文件,可 将以上过程定义成函数,打开文件时调用该函数即可。
FILE *fopenfun(char *file,char *model) { FILE *fp;
ch= fgetc ( fp ) ; 函数功能:
从指定的文件中读取一个字符到变量ch中。 返 回 值: 如读取成功,返回读取的字符,如果在执行fgetc函数
② r方式,只能用于从文本文件中读数据。若指定的文件不存在,则出 现错误信息。文件打开时,文件位置指针指向文件开头。
③ a方式,用于向文件末尾添加数据。若指定的文件存在,将它打开, 并将文件位置指针指向文件末尾,新写入的内容被追加在原有数据之后; 若指定的文件不存在,则创建该文件,这时文件位置指针指向的既是文件 头,也是文件尾。
C语言第章:文件PPT教学课件
a+ 以可读和添加方式打开文本文件 rb,wb,ab,r+b,rb+,w+b,wb+,a+b,ab+ 文件,与上述类似
二进制
10.2.2 文件的关闭
int fclose(FILE * stream);
10.2.3 文件的删除 int remove(const char * )
10.2.4 文件的重命名
char *_base; char *_ptr; char *_fname; … }
typedef struct _Iobuf FILE;
文件打开时,系统自动为该文 件定义一个文件结构变量(即文件 信息描述区) ,使该文件与其对应 的文件结构变量建立联系。程序中 可定义一个文件类型指针,使它指 向该文件结构变量。
对文件的读写处理都是通过指向文 件结构变量的指针进行。指向文件结构 变量的指针定义如下:
FILE *文件类型指针名;
如果程序中同时要处理几个文件, 则应该定义几个文件类型指针,例如:
FILE *fp1,*fp2,…,*fpn;
标准I/O提供了三种类型的缓存
(1) 全缓存 在这种情况下,当缓存被充满之后系统才进行实际的
exit(1); } ch=fgetc(fp); while (ch!=EOF) { putchar(ch); ch=fgetc(fp); } printf("argc is %d",argc); fclose(fp); }
(2) 每次一行的读写
char * fgets(char * buf, int n, FILE * stream)
注意: l 由于是将usigned char转换为int,因 此正常字符的范围只能是0255 l ANSI C中还定义了getc函数,该函数 可能是由宏实现的,因此效率可能比较 高。 l ANSI C中还定义了getchar函数,该函 数相当于fgetc(stdin)。
二进制
10.2.2 文件的关闭
int fclose(FILE * stream);
10.2.3 文件的删除 int remove(const char * )
10.2.4 文件的重命名
char *_base; char *_ptr; char *_fname; … }
typedef struct _Iobuf FILE;
文件打开时,系统自动为该文 件定义一个文件结构变量(即文件 信息描述区) ,使该文件与其对应 的文件结构变量建立联系。程序中 可定义一个文件类型指针,使它指 向该文件结构变量。
对文件的读写处理都是通过指向文 件结构变量的指针进行。指向文件结构 变量的指针定义如下:
FILE *文件类型指针名;
如果程序中同时要处理几个文件, 则应该定义几个文件类型指针,例如:
FILE *fp1,*fp2,…,*fpn;
标准I/O提供了三种类型的缓存
(1) 全缓存 在这种情况下,当缓存被充满之后系统才进行实际的
exit(1); } ch=fgetc(fp); while (ch!=EOF) { putchar(ch); ch=fgetc(fp); } printf("argc is %d",argc); fclose(fp); }
(2) 每次一行的读写
char * fgets(char * buf, int n, FILE * stream)
注意: l 由于是将usigned char转换为int,因 此正常字符的范围只能是0255 l ANSI C中还定义了getc函数,该函数 可能是由宏实现的,因此效率可能比较 高。 l ANSI C中还定义了getchar函数,该函 数相当于fgetc(stdin)。
C语言教程第10章文件操作精品PPT课件
注意:如果指定的文件已存在,则原有的内定将全部消失。 ”a+“:功能与”a“相同。只是在文件尾部添加新的数据之后,可以从头
开孡读。
关闭文件
当对文件的读(写)操作完成之后,必须将它关闭。
调用形式: fclose(文件指印)
当成功执行关闭操作,函数返回0,否则返回非0。
调用getc(fgetc)和putc(fputc)进行输入输出
复习与总结(文件)
报告人:邓平
主要内容
1 文件的概念 2 文件指针 3 文件的打开 4 文件的关闭 5 getc 和putc函数 6 判断结束函数feof 7 fscanf 和fprintf函数 8 fgets和fputs函数 9 fread和fwrite函数
文件概念
文件:记录在外部介质上的数据的集合称为“文件”。
fp1和fp2均被定义为指向文件类型的指针变量。 注意:FILE必须为大写。
打开文件
对文件进行操作之前,必须先打开该文件;使 用结束后,应立即关闭,以免数据丢失。
1.打开文件函数fopen() (1)用法:
FILE *fopen("文件名","操作方式"); 等价于: FILE *fp;
fp=fopen( “ 文件名”,“操作方式”); (2)功能:返回一个指向指定文件的指针。
fscanf和fptintf函数
1、fscanf函数 调用形式: fscanf(文件指针,格式控制符串,输入项表)
例: fscanf(fp,"%d%d",&a,&b);
功能:从fp所指文件中读入两个整数放入变量 a和b中。 注意:文件中的两个整数之间空格(回车符等)隔开。 注: fscanf(stdin,"%d %d",x,y) =
开孡读。
关闭文件
当对文件的读(写)操作完成之后,必须将它关闭。
调用形式: fclose(文件指印)
当成功执行关闭操作,函数返回0,否则返回非0。
调用getc(fgetc)和putc(fputc)进行输入输出
复习与总结(文件)
报告人:邓平
主要内容
1 文件的概念 2 文件指针 3 文件的打开 4 文件的关闭 5 getc 和putc函数 6 判断结束函数feof 7 fscanf 和fprintf函数 8 fgets和fputs函数 9 fread和fwrite函数
文件概念
文件:记录在外部介质上的数据的集合称为“文件”。
fp1和fp2均被定义为指向文件类型的指针变量。 注意:FILE必须为大写。
打开文件
对文件进行操作之前,必须先打开该文件;使 用结束后,应立即关闭,以免数据丢失。
1.打开文件函数fopen() (1)用法:
FILE *fopen("文件名","操作方式"); 等价于: FILE *fp;
fp=fopen( “ 文件名”,“操作方式”); (2)功能:返回一个指向指定文件的指针。
fscanf和fptintf函数
1、fscanf函数 调用形式: fscanf(文件指针,格式控制符串,输入项表)
例: fscanf(fp,"%d%d",&a,&b);
功能:从fp所指文件中读入两个整数放入变量 a和b中。 注意:文件中的两个整数之间空格(回车符等)隔开。 注: fscanf(stdin,"%d %d",x,y) =
C语言的文件处理及其应用PPT课件
第13页/共39页
9.2.1 文件的打开和关闭
文件处理完成后应及时地关闭文件以释放文件所占用的存 储区域。
int fclose( FILE *stream ); 功能:将与指定文件指针变量相关联的文件关闭。系统在 关闭文件时首先将对应文件缓冲区中还没有处理完的数据 写回相对应的文件,然后释放与该指针对应的文件结构体 变量,将资源归还系统。
FILE *fp1,*fp2; 同时定义了两个文件类型指针变量fp1和fp2。
第8页/共39页
9.2 C语言中的文件处理基础
程序设计中根据需要可以对文件进行任 何处理,程序中对于文件处理的一般过 程为: ⑴打开(或者建立)要处理的文件。 ⑵按某种方式处理文件。 ⑶关闭被处理的文件。
第9页/共39页
第18页/共39页
9.3.1 文件中的单个字符读写操作
功能:将用变量c表示的字 符数据写到与文件指针变 量stream相关联的文件
执行成功: 返回被写入文件的字符值
int fputc( int c, FILE *stream );
写入位置由文件的 内部记录指针所指
定
第19页/共39页
执行错误: 返回EOF
ANSI C提供了一个测试文件状态的函数: int feof( FILE *stream ); 功能:测试由stream所对应文件的内部记录指针是否 移动到了文件结尾。 当内部文件记录指针未到文件尾时,函数返回0值; 当内部文件记录指针到达文件尾时,函数返回非0值。
第16页/共39页
9.3.1 文件中的单个字符读写操作
第21页/共39页
9.3.1 文件中的单个字符读写操作
例9-5 编程序实现统计文本文件中单词个数 的功能,要求被统计文件名从命令行上带入。
9.2.1 文件的打开和关闭
文件处理完成后应及时地关闭文件以释放文件所占用的存 储区域。
int fclose( FILE *stream ); 功能:将与指定文件指针变量相关联的文件关闭。系统在 关闭文件时首先将对应文件缓冲区中还没有处理完的数据 写回相对应的文件,然后释放与该指针对应的文件结构体 变量,将资源归还系统。
FILE *fp1,*fp2; 同时定义了两个文件类型指针变量fp1和fp2。
第8页/共39页
9.2 C语言中的文件处理基础
程序设计中根据需要可以对文件进行任 何处理,程序中对于文件处理的一般过 程为: ⑴打开(或者建立)要处理的文件。 ⑵按某种方式处理文件。 ⑶关闭被处理的文件。
第9页/共39页
第18页/共39页
9.3.1 文件中的单个字符读写操作
功能:将用变量c表示的字 符数据写到与文件指针变 量stream相关联的文件
执行成功: 返回被写入文件的字符值
int fputc( int c, FILE *stream );
写入位置由文件的 内部记录指针所指
定
第19页/共39页
执行错误: 返回EOF
ANSI C提供了一个测试文件状态的函数: int feof( FILE *stream ); 功能:测试由stream所对应文件的内部记录指针是否 移动到了文件结尾。 当内部文件记录指针未到文件尾时,函数返回0值; 当内部文件记录指针到达文件尾时,函数返回非0值。
第16页/共39页
9.3.1 文件中的单个字符读写操作
第21页/共39页
9.3.1 文件中的单个字符读写操作
例9-5 编程序实现统计文本文件中单词个数 的功能,要求被统计文件名从命令行上带入。
文件处理(C语言)精品PPT课件
文件的分类(可从三个不同角度来分类)
1)按文件依附的介质区分 2)按文件的 内容区分 3)按数据的组织形式区分(文 本文件和二进制文件)
一般高级语言都能提供对文本文件和二进 制文件的操作,后面将详细介绍。
09.10.2020
许创制作
3
C语言的文件是流式文件,它把数据看作
是一连串的字符,即字节流或二进制流。 C语言的文件并非由记录组成。 C语言对文件的存取是以字节为单位,输 入输出的数据流的开始和结束仅受程序控制, 而不受物理符号控制,输出时不会自动增加 回车换行符作为记录结束标志,输入时不以 回车换行符作为记录的间隔。
把缓冲文件系统的输入输出称为标准输入
输出(标准I/O)
而把非缓冲文件系统的输入输出称为系统
级输入输出(系统I/O) 标准I/O提供读写文件的5种方法(C有5种
相应函数,总共10个):
09.10.2020
许创制作
8
1)读、写一个字符:fgetc 和 fputc 2)格式化读、写:fscanf 和 fprintf 3)读、写一个结构体记录:fread 和 fwrite 4)读、写一个字符串*:fgets 和 fputs 5)读、写一个整数*:getw 和 putw
只读
"rb+"
读写
"wb" 只写
"wb+" 读写
"ab"
追加
"ab+"
读写
说明:“r”方式打开的文件必须已经存在;
“w”方式打开就是新建文件;“a”方式打开
则是从文件尾添加数据;“b”是二进制
09.10.2020
许创制作
13
1)按文件依附的介质区分 2)按文件的 内容区分 3)按数据的组织形式区分(文 本文件和二进制文件)
一般高级语言都能提供对文本文件和二进 制文件的操作,后面将详细介绍。
09.10.2020
许创制作
3
C语言的文件是流式文件,它把数据看作
是一连串的字符,即字节流或二进制流。 C语言的文件并非由记录组成。 C语言对文件的存取是以字节为单位,输 入输出的数据流的开始和结束仅受程序控制, 而不受物理符号控制,输出时不会自动增加 回车换行符作为记录结束标志,输入时不以 回车换行符作为记录的间隔。
把缓冲文件系统的输入输出称为标准输入
输出(标准I/O)
而把非缓冲文件系统的输入输出称为系统
级输入输出(系统I/O) 标准I/O提供读写文件的5种方法(C有5种
相应函数,总共10个):
09.10.2020
许创制作
8
1)读、写一个字符:fgetc 和 fputc 2)格式化读、写:fscanf 和 fprintf 3)读、写一个结构体记录:fread 和 fwrite 4)读、写一个字符串*:fgets 和 fputs 5)读、写一个整数*:getw 和 putw
只读
"rb+"
读写
"wb" 只写
"wb+" 读写
"ab"
追加
"ab+"
读写
说明:“r”方式打开的文件必须已经存在;
“w”方式打开就是新建文件;“a”方式打开
则是从文件尾添加数据;“b”是二进制
09.10.2020
许创制作
13
《c语言文件操作》PPT课件
if((fp=fopen(filename,"w"))==NULL) {
printf("cannot open file\n"); exit(0); /*终止程序*/} ch=getchar( ); /*接收执行scanf语句时最后输入的回车符 */ ch=getchar( ); /* 接收输入的第一个字符 */ w运h行ile情(c况h!如='下#'{:
§13.1 C文件的有关概念
13.1.6 文件的位置指针
位置指针用来指示当前的读写位置。 一般情况下,在对字符文件进行顺序读写时,文件的位置指针指向 文件开头,这时如果对文件进行读的操作,就读第一个字符,然后 文件的位置指针顺序向后移一个位置,在下一次执行读的操作时, 就将指针指向的第二个字符读入。依此类推,直到遇文件尾.
§13.1 C文件的有关概念
13.1.4 文件缓冲区
ANSI C标准采用“缓冲文件系统”处理文件. 缓冲文件系统:系统自动地在内存区为每一个正 在使用的文件开辟一个缓冲区。 从内存向磁盘输出数据必须先送到内存中的缓冲 区,装满缓冲区冲区
文件
strcpy(str[k], strcpy(str[i],str[k]);
例} 13t.em2p);}将一个磁盘文件中的信息复制到另一个磁 if(盘(fp文=fo件pe中n("D。:\\CC\\temp\\string.dat","w"))==NULL) {
gets(str[i]); for(i=0;i<n-1;i++) {k=i;
for( j=i+1;j<n;j++) if(strcmp(str[k],str[j])>0) k=j;
printf("cannot open file\n"); exit(0); /*终止程序*/} ch=getchar( ); /*接收执行scanf语句时最后输入的回车符 */ ch=getchar( ); /* 接收输入的第一个字符 */ w运h行ile情(c况h!如='下#'{:
§13.1 C文件的有关概念
13.1.6 文件的位置指针
位置指针用来指示当前的读写位置。 一般情况下,在对字符文件进行顺序读写时,文件的位置指针指向 文件开头,这时如果对文件进行读的操作,就读第一个字符,然后 文件的位置指针顺序向后移一个位置,在下一次执行读的操作时, 就将指针指向的第二个字符读入。依此类推,直到遇文件尾.
§13.1 C文件的有关概念
13.1.4 文件缓冲区
ANSI C标准采用“缓冲文件系统”处理文件. 缓冲文件系统:系统自动地在内存区为每一个正 在使用的文件开辟一个缓冲区。 从内存向磁盘输出数据必须先送到内存中的缓冲 区,装满缓冲区冲区
文件
strcpy(str[k], strcpy(str[i],str[k]);
例} 13t.em2p);}将一个磁盘文件中的信息复制到另一个磁 if(盘(fp文=fo件pe中n("D。:\\CC\\temp\\string.dat","w"))==NULL) {
gets(str[i]); for(i=0;i<n-1;i++) {k=i;
for( j=i+1;j<n;j++) if(strcmp(str[k],str[j])>0) k=j;
C语言二级辅导(文件操作ppt)
int fprintf(FILE *fp, const char *format, ...); – fprintf(fp, "%d,%6.2f", i, t);
14
2012-9-6
C语言独特的文件访问
按数据块读写
unsigned fread(void *ptr, unsigned size, unsigned nmemb, FILE *fp); – 从fp读数据块到ptr – size是每个数据块的大小 – nmemb是最多允许写的数据块个数 – 返回实际读到的数据块个数 unsigned fwrite(const void *ptr, unsigned size, unsigned nmemb, FILE *fp); – 把ptr指向的数据块写入fp
2012-9-6
int fclose(FILE *fp);
10
文件指针(File Pointer)
FILE *fp ; – 是FILE型指针变量 – 标识一个特定的磁盘文件
typedef struct { short level; /*缓冲区‘满’或‘空’的程度*/ unsigned flags; /*文件状态标志*/ char fd; /*文件描述符*/ unsigned char hold; /*如无缓冲区不读字符*/ short bsize; /*缓冲区的大小*/ unsigned char *buffer;/*数据缓冲区的位置*/ unsigned char *curp; /*指针当前的指向*/ unsigned istemp; /*临时文件指示器*/ short token; /*用于有效性检查*/ }FILE; 2012-9-6 在stdio.h文件中定义 11
C语言文件操作讲解(2)精品PPT课件
➢ 它表示打开一指定文件,并使fp指向该数据文件; ➢ 文件名可以直接用带双引号的字符串常量,也可以用字符串
变量。
10.2 文件的打开与关闭
➢ 使用文件方式有:
“ r ” 打开一个已存在的文本文件,只能读取数据
“w” “a“
打开一个文本文件,只能写入数据 若文件不存在,则自动建立一个新文件接受写入的数据 若文件存在,则删去旧文件,建立一同名新文件接受数据
10.2 文件的打开与关闭
10.2 文件的打开与关闭
▪ 文件的打开:指为文件建立信息区(存放文件的信息) 和文件缓冲区(存放输入输出的数据),并建立它们 之间的联系。
▪ 文件的关闭:指撤销文件信息区和文件缓冲区。
1、文件的打开(函数:fopen) 首先定义文件指针: 如 FILE *fp; 然后打开文件:fp=fopen(文件名,使用文件方式);
1、向文件读写一个字符 1)用 fputc函数向文件写入一个字符 fputc函数调用形式:
fputc (ch, fp); 其中ch为一个字符常量或为一个字符变量;fp是文件型指 针变量;
该函数功能: 将ch中字符写到fp所指文件的当前位置;
函数的返回值: 正确,则返回刚写入文件中的字符;错误,则返回
▪ 可以直接使用FILE定义文件类型的指针变量对文 件进行访问,定义方法如下: FILE *文件型指针变量;
例:FILE *p, *q, *r;
▪ 注意: FILE 必须大写。
10.1 C文件的有关概念
▪ 系统定义的FILE型的指针变量
➢ stdin(标准输入文件指针):键盘 ➢ stdout(标准输出文件指针):显示器 ➢ stderr(标准错误文件指针):用来输出出错信息
10.2 文件的打开与关闭
变量。
10.2 文件的打开与关闭
➢ 使用文件方式有:
“ r ” 打开一个已存在的文本文件,只能读取数据
“w” “a“
打开一个文本文件,只能写入数据 若文件不存在,则自动建立一个新文件接受写入的数据 若文件存在,则删去旧文件,建立一同名新文件接受数据
10.2 文件的打开与关闭
10.2 文件的打开与关闭
▪ 文件的打开:指为文件建立信息区(存放文件的信息) 和文件缓冲区(存放输入输出的数据),并建立它们 之间的联系。
▪ 文件的关闭:指撤销文件信息区和文件缓冲区。
1、文件的打开(函数:fopen) 首先定义文件指针: 如 FILE *fp; 然后打开文件:fp=fopen(文件名,使用文件方式);
1、向文件读写一个字符 1)用 fputc函数向文件写入一个字符 fputc函数调用形式:
fputc (ch, fp); 其中ch为一个字符常量或为一个字符变量;fp是文件型指 针变量;
该函数功能: 将ch中字符写到fp所指文件的当前位置;
函数的返回值: 正确,则返回刚写入文件中的字符;错误,则返回
▪ 可以直接使用FILE定义文件类型的指针变量对文 件进行访问,定义方法如下: FILE *文件型指针变量;
例:FILE *p, *q, *r;
▪ 注意: FILE 必须大写。
10.1 C文件的有关概念
▪ 系统定义的FILE型的指针变量
➢ stdin(标准输入文件指针):键盘 ➢ stdout(标准输出文件指针):显示器 ➢ stderr(标准错误文件指针):用来输出出错信息
10.2 文件的打开与关闭
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
如:fclose(fp);
2020/12/09
9
16.5调用getc(fgetc)和putc(fputc) 函数进行输入和输出
1、调用putc(或fputc)函数输出一个字符 调用形式为:
putc(ch,fp); 功能是:将字符ch写到文件指针fp所指的文
件中去。当输出成功,putc函数返回所输 出的字符;否则,返回一个EOF值。EOF 是在stdio.h库函数文件中定义的符号常量, 其值等于-1。
建,反之,则从文件起始位置写,原内容将被 覆盖) 4、“wb”。为写而打开二进制文件。 5、“a”。为在文件后面添加数据而打开文本文件。 (若不存在,则新建;反之,在原文件后追加) 6、“ab”。为在文件后面添加数据而打开一个二 进制文件。
2020/12/09
6
最常用的文件使用方式及其含义如下:
7、“r+”。为读和写而打开文本文件。(读时,从 头开始;在写数据时,新数据只覆盖所占的空 间,其后不变)
2020/12/09
15
#include <stdio.h> void (FILE* ,FILE *); void main(int argc,char *argv[ ]){
FILE *fpin,*fpout; if(argc==3) { fpin=fopen(argv[1],”r”); fpout=fopen(argv[2],”w”); (fpin,fpout); fclose(fpin);fclose(fpout); } else if(argc>3)
7
最常用的文件使用方式及其含义如下:
11、“a+”。功能与“a”相同;只是在文件 尾部添加新的数据后,可以从头开始读。
12、“ab+”。功能与“a+”相同;只是在文 件尾部添加新数据之后,可以由位置函数 设置开始读的起始位置。
2020/12/09
8
16.4关闭文件
当文件的读写操作完成之后,使用fclose函 数关闭文件。格式如下: fclose(文件指针)
FILE *fpin; char ch; if((fpin==fopen(“”,”r”)==NULL) { printf(“Cann’t open this file!\n”);exit(0);} ch=fgetc(fpin); while (ch!=EOF) { putchar(ch); ch=fgetc(fpin);} fclose(fpin); }
printf(“The too many!!\n”; else printf(“There are no for input or output!!\n );
}
2020/12/09
16
void (FILE *fpin,FILE *fpout) {
char ch; ch=getc(fpin); while(!feof(fpin)) {putc(ch,fpout); ch=getc(fpin);} }
8、“rb+”。为读和写而打开二进制文件。只是在 随后的读写时,可以由位置函数设置读和写的 起始位置。
9、“w+”。首先建立一个新文件,进行写操作, 随后可以从头开始读。(若文件存在,原内容 将全部消失)
10、“wb+”。功能与“w+”同。只是在随后的读 写时,可以由位置函数设置读和写的起始位置。
2020/12/09
2020/12/09
14
13.6判断文件结束函数feof
EOF可以作为文本文件的结束 标志,但不能作为 二进制文件的结束符。feof函数既可以判断二进 制文件,又可以判断文本文件。
例:编写程序,用于把一个文本பைடு நூலகம்件(源)复制 到另一个文件(目的)中,源文件名和目的文 件名由命令行输入。命令形式如下: 可执行程序名 源文件名 目的文件名
11
if(fpout=fopen(“file_1”,”w”)==NULL) {
printf(“Cannot open this file!\n”); exit(0); } ch=getchar(); while(ch!=‘@’) { fputc(ch,fpout); ch=getchar(); } fclose(fpout); }
2020/12/09
12
2.调用getc(或fgetc)函数输入一个 字符
调用形式为:
ch=get(pf); 功能是:从pf指定的文件中读如一个字符,
并把它作为函数值返回。 例如:把一个已存在磁盘上的文本文件中的
内容,原样输出到终端屏幕上。
2020/12/09
13
#include<stdio.h> void main(){
第十三章 文件
2020/12/09
1
13.1C语言文件
1、两种文件存取方式(输入、输出方式) 顺序存取 直接存取 2、数据的两种存放形式 文本文件 二进制文件
2020/12/09
2
13.2文件指针
定义文件类型指针变量的一般形式: FILE *指针变量名; 例如:
FILE *fp1,*fp2;
2020/12/09
3
13.3打开文件
在使用文件之前,需打开文件。在C里使用fopen 函数打开文件。格式为:
fopen(文件名,文件使用方式); 此函数返回一个指向FILE类型的指针。如:
FILE *fp;
fp=fopen(“file_1”,”r”); 如果调用成功,fp就指向file_1,否则返回为NULL,
2020/12/09
10
16.5调用getc(fgetc)和putc(fputc) 函数进行输入和输出
例如:把从键盘输入的文本按原样输出到名 为文件中,用字符@作为键盘输入结束标 志。
#include<stdio.h> Void main() {
FILE *fpout; char ch;
2020/12/09
所以为了保证文件的正确使用,要进行测试。 采用如下语句:
2020/12/09
4
If(fp==fopen(“file_1”,”r”)==NULL) {
printf(“Cannot open this file\n”); exit(0); }
2020/12/09
5
最常用的文件使用方式及其含义如下:
1、“r”。为读而打开文本文件。(不存在则出错) 2、“rb”。为读而打开二进制文件。 3、“w”。为写而打开文本文件。(若不存在则新
2020/12/09
9
16.5调用getc(fgetc)和putc(fputc) 函数进行输入和输出
1、调用putc(或fputc)函数输出一个字符 调用形式为:
putc(ch,fp); 功能是:将字符ch写到文件指针fp所指的文
件中去。当输出成功,putc函数返回所输 出的字符;否则,返回一个EOF值。EOF 是在stdio.h库函数文件中定义的符号常量, 其值等于-1。
建,反之,则从文件起始位置写,原内容将被 覆盖) 4、“wb”。为写而打开二进制文件。 5、“a”。为在文件后面添加数据而打开文本文件。 (若不存在,则新建;反之,在原文件后追加) 6、“ab”。为在文件后面添加数据而打开一个二 进制文件。
2020/12/09
6
最常用的文件使用方式及其含义如下:
7、“r+”。为读和写而打开文本文件。(读时,从 头开始;在写数据时,新数据只覆盖所占的空 间,其后不变)
2020/12/09
15
#include <stdio.h> void (FILE* ,FILE *); void main(int argc,char *argv[ ]){
FILE *fpin,*fpout; if(argc==3) { fpin=fopen(argv[1],”r”); fpout=fopen(argv[2],”w”); (fpin,fpout); fclose(fpin);fclose(fpout); } else if(argc>3)
7
最常用的文件使用方式及其含义如下:
11、“a+”。功能与“a”相同;只是在文件 尾部添加新的数据后,可以从头开始读。
12、“ab+”。功能与“a+”相同;只是在文 件尾部添加新数据之后,可以由位置函数 设置开始读的起始位置。
2020/12/09
8
16.4关闭文件
当文件的读写操作完成之后,使用fclose函 数关闭文件。格式如下: fclose(文件指针)
FILE *fpin; char ch; if((fpin==fopen(“”,”r”)==NULL) { printf(“Cann’t open this file!\n”);exit(0);} ch=fgetc(fpin); while (ch!=EOF) { putchar(ch); ch=fgetc(fpin);} fclose(fpin); }
printf(“The too many!!\n”; else printf(“There are no for input or output!!\n );
}
2020/12/09
16
void (FILE *fpin,FILE *fpout) {
char ch; ch=getc(fpin); while(!feof(fpin)) {putc(ch,fpout); ch=getc(fpin);} }
8、“rb+”。为读和写而打开二进制文件。只是在 随后的读写时,可以由位置函数设置读和写的 起始位置。
9、“w+”。首先建立一个新文件,进行写操作, 随后可以从头开始读。(若文件存在,原内容 将全部消失)
10、“wb+”。功能与“w+”同。只是在随后的读 写时,可以由位置函数设置读和写的起始位置。
2020/12/09
2020/12/09
14
13.6判断文件结束函数feof
EOF可以作为文本文件的结束 标志,但不能作为 二进制文件的结束符。feof函数既可以判断二进 制文件,又可以判断文本文件。
例:编写程序,用于把一个文本பைடு நூலகம்件(源)复制 到另一个文件(目的)中,源文件名和目的文 件名由命令行输入。命令形式如下: 可执行程序名 源文件名 目的文件名
11
if(fpout=fopen(“file_1”,”w”)==NULL) {
printf(“Cannot open this file!\n”); exit(0); } ch=getchar(); while(ch!=‘@’) { fputc(ch,fpout); ch=getchar(); } fclose(fpout); }
2020/12/09
12
2.调用getc(或fgetc)函数输入一个 字符
调用形式为:
ch=get(pf); 功能是:从pf指定的文件中读如一个字符,
并把它作为函数值返回。 例如:把一个已存在磁盘上的文本文件中的
内容,原样输出到终端屏幕上。
2020/12/09
13
#include<stdio.h> void main(){
第十三章 文件
2020/12/09
1
13.1C语言文件
1、两种文件存取方式(输入、输出方式) 顺序存取 直接存取 2、数据的两种存放形式 文本文件 二进制文件
2020/12/09
2
13.2文件指针
定义文件类型指针变量的一般形式: FILE *指针变量名; 例如:
FILE *fp1,*fp2;
2020/12/09
3
13.3打开文件
在使用文件之前,需打开文件。在C里使用fopen 函数打开文件。格式为:
fopen(文件名,文件使用方式); 此函数返回一个指向FILE类型的指针。如:
FILE *fp;
fp=fopen(“file_1”,”r”); 如果调用成功,fp就指向file_1,否则返回为NULL,
2020/12/09
10
16.5调用getc(fgetc)和putc(fputc) 函数进行输入和输出
例如:把从键盘输入的文本按原样输出到名 为文件中,用字符@作为键盘输入结束标 志。
#include<stdio.h> Void main() {
FILE *fpout; char ch;
2020/12/09
所以为了保证文件的正确使用,要进行测试。 采用如下语句:
2020/12/09
4
If(fp==fopen(“file_1”,”r”)==NULL) {
printf(“Cannot open this file\n”); exit(0); }
2020/12/09
5
最常用的文件使用方式及其含义如下:
1、“r”。为读而打开文本文件。(不存在则出错) 2、“rb”。为读而打开二进制文件。 3、“w”。为写而打开文本文件。(若不存在则新