c++程序设计-文-件课件_第1页
c++程序设计-文-件课件_第2页
c++程序设计-文-件课件_第3页
c++程序设计-文-件课件_第4页
c++程序设计-文-件课件_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C

语言程序设计第

8

章文件烟台大学计算机学院刘培华1C语言程序设计第8章文件烟台大学计算机学院刘第8章文件8.1文件的概念8.2文本文件的读写8.3文件的读写2023/1/12第8章文件8.1文件的概念2022/12/262文件:存储在外部存储介质上相关数据的集合。 例如:程序文件中保存着程序,数据文件中保存着数据。 *.C

C语言的源程序 文本文件

*.OBJ

目标文件 二进制文件

*.EXE

可执行文件 二进制文件文件的存储特性

文件是一个有序的数据序列。C语言把文件作为一个字符(字节)序列处理,对文件的存取是以字符(字节)为单位进行的。

8.1文件的概述8.1.1文件和文件指针1.什么是文件

2023/1/13文件:存储在外部存储介质上相关数据的集合。8.1文件的概述按文件存储数据的形式ASCII文件(或称文本文件)

ASCII码文件中每个字节存放一个ASCII代码,代表一个字符,此种存储形式便于输出显示,在DOS操作系统下可以直接阅读。二进制文件

二进制文件中的数据是按照在内存中的二进制存储格式存放的,此种存储形式节省存储单元。二进制文件在DOS操作系统下不能直接阅读。8.1文件的概述8.1.1文件和文件指针2.文件的种类

2023/1/14按文件存储数据的形式8.1文件的概述8.1.1文件和文件例如将短整数1949分别存储在这两种数据文件中。ASCII文件:ASCII码二进制文件:补码占用4个字节占用2个字节8.1文件的概述8.1.1文件和文件指针2.文件的种类

00110001001110010011010000111001'1''9''4''9'00000111100111012023/1/15例如将短整数1949分别存储在这两种数据文件中。ASCII文按照对文件的处理方式缓冲文件

利用缓冲文件系统处理的文件称为缓冲文件。系统处理方法是在内存中为每个正在使用的缓冲文件开辟一个缓冲区,其大小是512个字节。对文件读写数据都通过缓冲区进行。非缓冲文件利用非缓冲文件系统处理的文件称为非缓冲文件。系统处理非缓冲文件时,不为文件开辟缓冲区,需要程序员自行设计并管理缓冲区。83年以后ANSIC标准中取消了非缓冲文件

系统,对文本文件和二进制文件均采用缓冲文

件系统进行处理。8.1文件的概述8.1.1文件和文件指针2.文件的种类

2023/1/16按照对文件的处理方式83年以后ANSIC标准中取消

系统对文件的处理过程就是对文件进行输入/输出操作的过程。从文件读数据时,先一次性从磁盘文件中读取一批数据到缓冲区,然后再从缓冲区逐个将数据送入变量。向文件写数据时,也是先将变量中数据送到缓冲区,待缓冲区装满后,再一起存到磁盘文件中。8.1文件的概述8.1.1文件和文件指针3.缓冲文件和文件指针

磁盘文件

输出

输入图10.2系统对缓冲文件的处理

输入输出程序区数据区文件

缓冲区外存内存2023/1/17系统对文件的处理过程就是对文件进行输入/输出操作的8.1文件的概述8.1.1文件和文件指针3.缓冲文件和文件指针

文件类型指针

在缓冲文件系统中,对每个正在使用的文件都自动分配一个FILE类型的结构体变量,用于存放文件的有关信息,如文件号、文件状态、缓冲区地址和大小等。

FILE类型是系统定义的,包含在stdio.h头文件中 在C语言中,无论对磁盘文件还是设备文件的读/写都要通过FILE类型的结构体变量进行。因此对于每个使用中的磁盘文件必须先定义一个FILE类型的文件指针变量并指向此变量。

FILE

*文件指针变量名;typedefstruct{shortlevel;/*缓冲区满或空的程度*/unsignedflags;/*文件状态标志*/charfd;/*文件描述符*/unsignedcharhold;/*如无缓冲区不读取字符*/shortbsize;/*缓冲区的大小*/unsignedchar*buffer;/*数据缓冲区的位置*/unsignedchar*curp;/*指针,当前的指向*/unsignedistemp;/*临时文件指示器*/shorttoken;/*用于有效性检查*/}FILE;/*文件结构类型名*/2023/1/188.1文件的概述8.1.1文件和文件指针3.缓冲文件和

标准文件是外部设备中的三个特殊的设备文件。它们的文件指针是系统定义的,并由系统自动打开和关闭。这三个标准文件分别是:①标准输入文件,文件指针为stdin,系统指定为键盘。②标准输出文件,文件指针为stdout,系统指定为显示器。③标准错误输出文件,文件指针为stderr,系统指定为显示器,输出错误信息。8.1文件的概述8.1.1文件和文件指针4.标准文件

2023/1/19 标准文件是外部设备中的三个特殊的设备文件。它们的文8.1文件的概述8.1.2文件的打开与关闭操作文件的一般步骤

打开文件

读写文件

关闭文件打开文件:建立用户程序与文件的联系,为文件分

配一个文件缓冲区。读写文件:是指对文件的读、写、追加和定位操作。关闭文件:切断文件与程序的联系,释放文件缓冲

区。

C语言的输入输出函数库中提供了大量的函数,用于完成对数据文件的建立、数据的读写、数据的追加等操作。在程序中调用这些函数时,必须先用include命令包含stdio.h文件。

2023/1/1108.1文件的概述8.1.2文件的打开与关闭操作文件的一般常用的调用形式:

FILE

*fp;fp=fopen(文件名,文件使用方式);

文件名:需要打开的文件名称(字符串)。

文件使用方式:是具有特定含义的符号。8.1文件的概述8.1.2文件的打开与关闭1.文件打开函数fopen(

)函数功能:

按指定的文件使用方式打开指定的文件。若文件打开成功,为该文件分配一个文件缓冲区和一个FILE类型变量,返回一个FILE类型指针;

若文件打开失败,返回NULL。2023/1/111常用的调用形式:8.1文件的概述8.1.2文件的打开文本文件的三种基本使用方式”r”:只读方式

为读(输入)文本文件打开文件。若文件不存在,返回NULL。”w”:只写方式

为写(输出)文本文件打开文件。若文件不存在,则建立一个新文件;若文件已存在,则清空文件。”a”:追加方式为写(输出)文本文件打开文件。若文件已存在,则保持原来文件的内容,将新的数据增加到原来数据的后面;若文件不存在,则返回NULL。8.1文件的概述8.1.2文件的打开与关闭2023/1/112文本文件的三种基本使用方式8.1文件的概述8.1.2二进制文件的三种基本使用方式”rb”:只读方式

为读(输入)二进制文件打开文件。若文件不存在,返回NULL。”wb”:只写方式

为写(输出)二进制文件打开文件。若文件不存在,则建立一个新文件;若文件已存在,则清空文件。”ab”:追加方式为写(输出)二进制文件打开文件。若文件已存在,则保持原来文件的内容,将新的数据增加到原来数据的后面;若文件不存在,则返回NULL。8.1文件的概述8.1.2文件的打开与关闭2023/1/113二进制文件的三种基本使用方式8.1文件的概述8.1.8.1文件的概述8.1.2文件的打开与关闭文件的其他打开方式

”r+”:可以对文本文件进行读/写操作。若文件不存在返回NULL;若文件存在内容不被清空。

”w+”:可以对文本文件进行读/写操作。 若文件已经存在,则先清空文件原来的内容。

”a+”:可以对文本文件进行读/追加操作。文件内容不会清空。

”rb+”:可以对二进制文件进行读/写操作。

”wb+”:可以对二进制文件进行读/写操作。

”ab+”:可以对二进制文件进行读/追加操作。2023/1/1148.1文件的概述8.1.2文件的打开与关闭文件的其检查文件打开操作是否成功

if((fp=fopen("filename","r"))==NULL){cout<<”Cannotopenfile.”<<endl;

exit(0); }

检查以只读方式打开文件名为filename的文件是否成功。

exit函数的作用:结束程序的执行,并将实参0作为函数返回值传给操作系统。

8.1文件的概述8.1.2文件的打开与关闭2023/1/115检查文件打开操作是否成功8.1文件的概述8.1.2常用的调用形式:

FILE

*fp;fclose(fp);fp:已经打开的文件指针。8.1文件的概述8.1.2文件的打开与关闭2.文件关闭函数fclose(

)函数功能:关闭fp指定的文件,释放该文件的缓冲区、FILE类型变量及文件指针。若文件关闭成功,则返回0;若文件关闭失败,则返回非0值。2023/1/116常用的调用形式:8.1文件的概述8.1.2文件的打开常用的调用形式:

FILE

*fp;fputc(ch,fp);

ch:需要输出的字符,可以是字符常量或字符变量;fp:文件指针变量。对文本文件的读写操作,必须按文件中字符的先后顺序进行,只能在操作了第i个字符之后,才能操作第i+1个字符。在对文件操作时,文件的读写指针由系统自动向后移动。8.2文本文件的读写8.2.1文件的字符输入输出函数1.字符输出函数fputc(

)(或putc(

))函数功能:

将一个字符(ASCII码)写入到fp所指向的文件(该文件必须是以写或读写方式打开的)中。若输出操作成功,函数返回写入的字符;否则,返回EOF。系统定义的文本文件结束标志,其值为(-1)。

2023/1/117常用的调用形式:对文本文件的读写操作,必须按文件中字常用的调用形式:

FILE

*fp;

ch

=fgetc(fp);

ch:可以是字符变量或整型变量;fp:文件指针变量。8.2文本文件的读写8.2.1文件的字符输入输出函数2.字符输入函数fgetc(

)(或getc(

))函数功能:从fp所指向的文件(该文件必须是以读或读写方式打开的)中读取一个字符。若输入操作成功,函数返回读入的字符;若文件结束或输入操作失败,则返回EOF。2023/1/118常用的调用形式:8.2文本文件的读写8.2.1文件的【例8.1】利用fputc和fgetc函数建立一个文本文件,并显示文件中的内容。#include<stdio.h>main(){FILE*fp;/*定义一个文件指针变量fp*/intc;/*c为存放字符的变量*/

charfilename[40];/*filename用于存放数据文件名*/

cout<<"filename:";/*提示输入磁盘文件名*/

gets(filename);

if((fp=fopen(filename,"w"))==NULL)

{cout<<"Can'topenthe"<<filename<<endl;

exit(0);}8.2文本文件的读写8.2.1文件的字符输入输出函数测试打开文件是否成功2023/1/119【例8.1】利用fputc和fgetc函数建立一个文本文件,while((c=getchar())!=EOF)/*键盘文件结束标志:输入Ctrl+z,显示^Z后回车*/

putc(c,fp);/*将键盘输入的字符写到文件中*/fclose(fp);/*建立文件结束,关闭文件*/cout<<"outfile:“<<endl;fp=fopen(filename,"r");/*以读方式打开文本文件*/while((c=getc(fp))!=EOF)/*未读到文件结束标志时*/

putchar(c);/*在显示器显示读出的字符*/fclose(fp);/*读文件结束,关闭文件*/}8.2文本文件的读写8.2.1文件的字符输入输出函数2023/1/120while((c=getchar())!=EOF)8.28.3文件的读写8.3.1文件的其它输入输出函数1.字符串输出函数fputs(

)2.字符串输入函数fgets(

)

3.格式输出函数fprintf(

)

4.格式输入函数fscanf(

)

5.字输出函数putw(

)

6.字输入函数getw(

)

7.数据块输出函数fwrite(

)

8.数据块输入函数fread(

)2023/1/1218.3文件的读写8.3.1文件的其它输入输出函数作业与实验实验p58实验11:作业习题:p255 一、

二2023/1/122作业与实验实验p582022/12/2622C

语言程序设计第

8

章文件烟台大学计算机学院刘培华23C语言程序设计第8章文件烟台大学计算机学院刘第8章文件8.1文件的概念8.2文本文件的读写8.3文件的读写2023/1/124第8章文件8.1文件的概念2022/12/262文件:存储在外部存储介质上相关数据的集合。 例如:程序文件中保存着程序,数据文件中保存着数据。 *.C

C语言的源程序 文本文件

*.OBJ

目标文件 二进制文件

*.EXE

可执行文件 二进制文件文件的存储特性

文件是一个有序的数据序列。C语言把文件作为一个字符(字节)序列处理,对文件的存取是以字符(字节)为单位进行的。

8.1文件的概述8.1.1文件和文件指针1.什么是文件

2023/1/125文件:存储在外部存储介质上相关数据的集合。8.1文件的概述按文件存储数据的形式ASCII文件(或称文本文件)

ASCII码文件中每个字节存放一个ASCII代码,代表一个字符,此种存储形式便于输出显示,在DOS操作系统下可以直接阅读。二进制文件

二进制文件中的数据是按照在内存中的二进制存储格式存放的,此种存储形式节省存储单元。二进制文件在DOS操作系统下不能直接阅读。8.1文件的概述8.1.1文件和文件指针2.文件的种类

2023/1/126按文件存储数据的形式8.1文件的概述8.1.1文件和文件例如将短整数1949分别存储在这两种数据文件中。ASCII文件:ASCII码二进制文件:补码占用4个字节占用2个字节8.1文件的概述8.1.1文件和文件指针2.文件的种类

00110001001110010011010000111001'1''9''4''9'00000111100111012023/1/127例如将短整数1949分别存储在这两种数据文件中。ASCII文按照对文件的处理方式缓冲文件

利用缓冲文件系统处理的文件称为缓冲文件。系统处理方法是在内存中为每个正在使用的缓冲文件开辟一个缓冲区,其大小是512个字节。对文件读写数据都通过缓冲区进行。非缓冲文件利用非缓冲文件系统处理的文件称为非缓冲文件。系统处理非缓冲文件时,不为文件开辟缓冲区,需要程序员自行设计并管理缓冲区。83年以后ANSIC标准中取消了非缓冲文件

系统,对文本文件和二进制文件均采用缓冲文

件系统进行处理。8.1文件的概述8.1.1文件和文件指针2.文件的种类

2023/1/128按照对文件的处理方式83年以后ANSIC标准中取消

系统对文件的处理过程就是对文件进行输入/输出操作的过程。从文件读数据时,先一次性从磁盘文件中读取一批数据到缓冲区,然后再从缓冲区逐个将数据送入变量。向文件写数据时,也是先将变量中数据送到缓冲区,待缓冲区装满后,再一起存到磁盘文件中。8.1文件的概述8.1.1文件和文件指针3.缓冲文件和文件指针

磁盘文件

输出

输入图10.2系统对缓冲文件的处理

输入输出程序区数据区文件

缓冲区外存内存2023/1/129系统对文件的处理过程就是对文件进行输入/输出操作的8.1文件的概述8.1.1文件和文件指针3.缓冲文件和文件指针

文件类型指针

在缓冲文件系统中,对每个正在使用的文件都自动分配一个FILE类型的结构体变量,用于存放文件的有关信息,如文件号、文件状态、缓冲区地址和大小等。

FILE类型是系统定义的,包含在stdio.h头文件中 在C语言中,无论对磁盘文件还是设备文件的读/写都要通过FILE类型的结构体变量进行。因此对于每个使用中的磁盘文件必须先定义一个FILE类型的文件指针变量并指向此变量。

FILE

*文件指针变量名;typedefstruct{shortlevel;/*缓冲区满或空的程度*/unsignedflags;/*文件状态标志*/charfd;/*文件描述符*/unsignedcharhold;/*如无缓冲区不读取字符*/shortbsize;/*缓冲区的大小*/unsignedchar*buffer;/*数据缓冲区的位置*/unsignedchar*curp;/*指针,当前的指向*/unsignedistemp;/*临时文件指示器*/shorttoken;/*用于有效性检查*/}FILE;/*文件结构类型名*/2023/1/1308.1文件的概述8.1.1文件和文件指针3.缓冲文件和

标准文件是外部设备中的三个特殊的设备文件。它们的文件指针是系统定义的,并由系统自动打开和关闭。这三个标准文件分别是:①标准输入文件,文件指针为stdin,系统指定为键盘。②标准输出文件,文件指针为stdout,系统指定为显示器。③标准错误输出文件,文件指针为stderr,系统指定为显示器,输出错误信息。8.1文件的概述8.1.1文件和文件指针4.标准文件

2023/1/131 标准文件是外部设备中的三个特殊的设备文件。它们的文8.1文件的概述8.1.2文件的打开与关闭操作文件的一般步骤

打开文件

读写文件

关闭文件打开文件:建立用户程序与文件的联系,为文件分

配一个文件缓冲区。读写文件:是指对文件的读、写、追加和定位操作。关闭文件:切断文件与程序的联系,释放文件缓冲

区。

C语言的输入输出函数库中提供了大量的函数,用于完成对数据文件的建立、数据的读写、数据的追加等操作。在程序中调用这些函数时,必须先用include命令包含stdio.h文件。

2023/1/1328.1文件的概述8.1.2文件的打开与关闭操作文件的一般常用的调用形式:

FILE

*fp;fp=fopen(文件名,文件使用方式);

文件名:需要打开的文件名称(字符串)。

文件使用方式:是具有特定含义的符号。8.1文件的概述8.1.2文件的打开与关闭1.文件打开函数fopen(

)函数功能:

按指定的文件使用方式打开指定的文件。若文件打开成功,为该文件分配一个文件缓冲区和一个FILE类型变量,返回一个FILE类型指针;

若文件打开失败,返回NULL。2023/1/133常用的调用形式:8.1文件的概述8.1.2文件的打开文本文件的三种基本使用方式”r”:只读方式

为读(输入)文本文件打开文件。若文件不存在,返回NULL。”w”:只写方式

为写(输出)文本文件打开文件。若文件不存在,则建立一个新文件;若文件已存在,则清空文件。”a”:追加方式为写(输出)文本文件打开文件。若文件已存在,则保持原来文件的内容,将新的数据增加到原来数据的后面;若文件不存在,则返回NULL。8.1文件的概述8.1.2文件的打开与关闭2023/1/134文本文件的三种基本使用方式8.1文件的概述8.1.2二进制文件的三种基本使用方式”rb”:只读方式

为读(输入)二进制文件打开文件。若文件不存在,返回NULL。”wb”:只写方式

为写(输出)二进制文件打开文件。若文件不存在,则建立一个新文件;若文件已存在,则清空文件。”ab”:追加方式为写(输出)二进制文件打开文件。若文件已存在,则保持原来文件的内容,将新的数据增加到原来数据的后面;若文件不存在,则返回NULL。8.1文件的概述8.1.2文件的打开与关闭2023/1/135二进制文件的三种基本使用方式8.1文件的概述8.1.8.1文件的概述8.1.2文件的打开与关闭文件的其他打开方式

”r+”:可以对文本文件进行读/写操作。若文件不存在返回NULL;若文件存在内容不被清空。

”w+”:可以对文本文件进行读/写操作。 若文件已经存在,则先清空文件原来的内容。

”a+”:可以对文本文件进行读/追加操作。文件内容不会清空。

”rb+”:可以对二进制文件进行读/写操作。

”wb+”:可以对二进制文件进行读/写操作。

”ab+”:可以对二进制文件进行读/追加操作。2023/1/1368.1文件的概述8.1.2文件的打开与关闭文件的其检查文件打开操作是否成功

if((fp=fopen("filename","r"))==NULL){cout<<”Cannotopenfile.”<<endl;

exit(0); }

检查以只读方式打开文件名为filename的文件是否成功。

exit函数的作用:结束程序的执行,并将实参0作为函数返回值传给操作系统。

8.1文件的概述8.1.2文件的打开与关闭2023/1/137检查文件打开操作是否成功8.1文件的概述8.1.2常用的调用形式:

FILE

*fp;fclose(fp);fp:已经打开的文件指针。8.1文件的概述8.1.2文件的打开与关闭2.文件关闭函数fclose(

)函数功能:关闭fp指定的文件,释放该文件的缓冲区、FILE类型变量及文件指针。若文件关闭成功,则返回0;若文件关闭失败,则返回非0值。2023/1/138常用的调用形式:8.1文件的概述8.1.2文件的打开常用的调用形式:

FILE

*fp;fputc(ch,fp);

ch:需要输出的字符,可以是字符常量或字符变量;fp:文件指针变量。对文本文件的读写操作,必须按文件中字符的先后顺序进行,只能在操作了第i个字符之后,才能操作第i+1个字符。在对文件操作时,文件的读写指针由系统自动向后移动。8.2文本文件的读写8.2.1文件的字符输入输出函数1.字符输出函数fputc(

)(或putc(

))函数功能:

将一个字符(ASCII码)写入到fp所指向的文件(该文件必须是以写或读写方式打开的)中。若输出操作成功,函数返回写入的字符;否则,返回EOF。系统定义的文本文件结束标志,其值为(-1)。

2023/1/139常用的调用形式:对文本文件的读写操作,必须按文件中字常用的调用形式:

FILE

*fp;

ch

=fgetc(fp);

ch:可以是字符变量或整型变量;fp:文件指针变量。8.2文本文件的读写8.2.1文件的字符输入输出函数2.字符输入函数fgetc(

)(或getc(

))函数功能:从fp所指向的文件(该文件必须是以读或读写方式打开的)中读取一个字符。若输入操作成功,函数返回读入的字符;若文件结束或输入操作失败,则返回EOF。2023/1/140常用的调用形式:8.2文本文件的读写8.2.1文件的【例8.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论