C语言初级教程-第10章_文件操作

合集下载

Ch10-C语言-文件操作

Ch10-C语言-文件操作

} else } fclose(text);
} else /* text==NULL */ printf("\n\nError open file %s !\n\n",argv[1]); } else } printf("\n\nFormat : MYTYPE <textname>\n\n");
fp = fopen("MYDATA.DAT","w+b");
在当前目录下建立一个可读可写的二进制文件。
11
2、fclose()函数
其原型为 int fclose(FILE *fp); 其中参数: fp 即用 fopen() 函数打开文件时返回的文件 指针。如果文件关闭成功 , 该函数返回 0, 否 则返回文件结束符EOF。
显示本程序的正确使用方法;
else { 按命令行参数分别按读方式打开源文件, 按写方式打开目标文件; if(上述两个文件无法打开) 显示出错信息; else { 将源文件中的内容逐字节地 复制到目标文件中去; 关闭两个文件; }
}
17
C1001.C复制文件
#include <stdio.h> main(int argc,char *argv[]) { if(argc!=3) /* 命令行参数的个数错 ! */ printf("\n\nFORMAT: MYCOPY <source> <destin>\n\n"); else { FILE *source, *destin; source = fopen(argv[1],"rb"); destin = fopen(argv[2],"wb"); if(source==NULL) /* 源程序文件不存在 */ printf("ERROR:Can't open source file %s!\n",argv[1]); else if(destin==NULL) /* 目标文件打开错误 */ printf("ERROR:Can't open destin file %s!\n",argv[2]); else /* 一切正常 */ while(!feof(source)) fputc(fgetc(source), destin); } fclose(source); fclose(destin); }

C语言的文件操作

C语言的文件操作

C语言的文件操作C语言提供了一组用于文件操作的函数,这些函数可以创建、打开、读取、写入和关闭文件。

文件操作在C语言中非常重要,因为它允许程序与外部存储进行交互,并且读取和写入文件是我们日常编程工作中最常见的操作之一、在这篇文章中,我将介绍C语言中文件操作的基本概念和常用函数。

在C语言中,首先需要包含头文件`stdio.h`,这个头文件中包含了一些文件操作所需的函数原型和符号常量。

##文件的创建和打开要创建一个新的文件,可以使用`fopen`函数。

它的原型如下:```cFILE *fopen(const char *filename, const char *mode);```该函数接受两个参数:`filename`为要创建或打开的文件名,`mode`为打开文件的模式。

`mode`参数可以是以下几种:-"r":只读方式打开文件。

如果文件不存在,则打开失败。

-"w":写入方式打开文件。

如果文件不存在,则创建一个新的文件;如果文件已经存在,则会清空文件内容。

-"a":追加方式打开文件。

如果文件不存在,则创建一个新的文件;如果文件已经存在,则写入的内容将添加到文件的末尾。

-"r+":读写方式打开文件。

如果文件不存在,则打开失败。

-"w+":读写方式打开文件。

如果文件不存在,则创建一个新的文件;如果文件已经存在,则会清空文件内容。

-"a+":读写方式打开文件。

如果文件不存在,则创建一个新的文件;如果文件已经存在,则写入的内容将添加到文件的末尾。

例如,要以只读方式打开名为`example.txt`的文件,可以使用以下代码:```cFILE *file = fopen("example.txt", "r");if (file == NULL)perror("Failed to open the file");exit(1);````fopen`函数返回一个指向`FILE`结构体的指针,该结构体用于后续对文件进行操作。

C语言基础自学总结之十:文件操作

C语言基础自学总结之十:文件操作

C语言基础自学总结之十:文件操作要点:1.文件操作,就是通过程序,操作文件2.两个方面:读,写一.fopen 打开文件函数原型:FILE *fopen(char *filename, char *type);intfclose(FILE *fp);头文件:#include<stdio.h>是否是标准函数:是函数功能:函数fopen:打开一个流,即:打开一个文件。

该函数有两个参数,filename是需要打开文件的文件名,type是打开文件的方式。

函数fclose:关闭一个流,即:关闭一个文件,并释放文件缓冲区。

fclose函数与fopen函数是相对的两个函数。

fclose函数的参数是指向文件的指针,应用该函数用以在程序结束之前关闭文件,并释放文件缓冲区。

这样可以保证文件的数据不流失。

返回值:fopen:FILE类型,如果打开的文件存在,返回指向该文件的指针;如果打开的文件不存在,则在指定的目录下建立该文件打开,并返回指向该文件的指针。

fclose:整型,有错返回非0,否则返回0。

例子1:#include <stdio.h>int main(void){FILE *FP=fopen("文件","打开方式");//返回值是file是一个结构体,是一个结构体的宏。

fclose(FP);//打开之后,用完了,就要关闭文件,fclose是跟fopen一起使用的一个函数。

return 0;}二. frend 读取fread:从流中读取字符串函数函数原型:int fread(void *buf, int size, int count, FILE *fp);头文件:#include<stdio.h>是否是标准函数:是函数功能:从fp指向的文件中读取长度为size 的count个数据项,并将它输入到以buf为首地址的缓冲区中。

此时,文件指针fp会自动增加实际读入数据的字节数,即fp指向最后读入字符的下一个字符位置。

《C语言程序设计教程》第10章_文件

《C语言程序设计教程》第10章_文件

§10.3 文件的顺序读写
10.3.1 向文件读写一个字符
1.用fputc函数向文件写入一个字符. 调用形式: fputc ( ch,fp ) ; 函数功能: 将字符(ch的值)输出到fp所指向的文件中去。 返回值: 如果输出成功,则返回值就是输出的字符; 如果输出失败,则返回一个EOF.
§10.3 文件的顺序读写
§10.1 C文件的有关概念
10.1.5 文件指针
不同的C编译系统的FILE类型包含的内容不完全相同,但大同小 异。 Turbo C在stdio.h文件中有以下的文件类型声明: typedef struct { shortlevel; /*缓冲区“满”或“空”的程度*/ unsignedflags; /*文件状态标志*/ charfd; /*文件描述符*/ unsignedcharhold; /*如无缓冲区不读取字符*/ shortbsize; /*缓冲区的大小*/ unsignedchar*buffer;/*数据缓冲区的位置*/ unsignedar*curp;/*指针,当前的指向*/ unsignedistemp;/*临时文件,指示器*/ shorttoken;/*用于有效性检查*/}FILE; 在缓冲文件系统中,每个被使用的文件都要在内存中开辟一 FILE类型的区,存放文件的有关信息.
§10.2 文件的打开与关闭
10.2.2 文件的关闭(fclose函数)
函数调用: fclose(文件指针); 函数功能: 使文件指针变量不指向该文件,也就是文件指针变 量与文件“脱钩”,此后不能再通过该指针对原来与 其相联系的文件进行读写操作 返回值: 关闭成功返回值为0;否则返回EOF(-1)

பைடு நூலகம்
↑ ↑
§10.1 C文件的有关概念

c语言程序设计教程第10章文件

c语言程序设计教程第10章文件
程序 输入文件缓冲区 缓冲文件系统: 非缓冲文件系统: 指令区 程序数据区 用户数据区 a 磁盘文件 磁盘
输出文件缓冲区 缓冲区
广西工学院
10.1.2 文件类型指针
文件结构体FILE
缓冲文件系统为每个正使用的文件在内存开辟文件信 息区 文件信息用系统定义的名为FILE的结构体描述 FILE定义在stdio.h中
typedef struct { int _fd; int _cleft; int _mode; char *_next; char *_buff; }FILE;
//文件号 //缓冲区中剩下的字符数 //文件操作方式 //文件当前读写位置 //文件缓冲区位置
广西工学院
文件类型指针
有了结构体FILE类型之后,可以用它来定义若干个FILE类型的变 量,以便存放若干个文件的信息。 例如,可以定义以下FILE类型的数组.FILE f[5];定义了一个结构 体数组f,它有5个元素,可以用来存放5个文件的信息. 可以定义文件型指针变量.
例2 FILE *fp; char *filename=“c:\\fengyi\\bkc\\test.dat” fp= fopen(filename,”r”);
例3 文件打开与测试 FILE *fp; fp=fopen(“aa.c”,“w”); if(fp==NULL) { printf(“File open error!\n”); exit(0); }
指针变量定义: FILE *fp; 说明:
fp是一个指向FILE类型结构体的指针变量。可以使fp指向某 一个文件的结构体变量,从而通过该结构体变量中的文件信 息能够访问该文件。也就是说,通过文件指针变量能够找到 与它相关的文件。如果有n个文件,一般应设n个指针变量(指 向FILE类型结构体的指针变量),使它们分别指向n个文件(确 切地说指向存放该文件信息的结构体变量),以实现对文件的 访问。

C语言程序设计第10章文件及其应用

C语言程序设计第10章文件及其应用

学一学
1.定义文件指针 一般形式为: FILE * fp; 其中fp就是所定义文件指针。 FILE类型 以及所有的文件读写函数和相关常量都定 义在文件stdio.h中,在源程序的开头要 包含头文件 stdio.h 。
学一学
2.打开文件 C语言中,使用fopen函数来打开文件。打开文件是使 一个文件指针变量指向被打开文件的结构变量,以便通 过该指针变量访问打开的文件。fopen函数的调用形式 如下: fopen(chFileName,mode); 以mode 方式打开文件chFileName。其中,参数 chFileName 是将要读写文件的文件名,mode为文件 的操作方式。若文件打开成功,返回一个文件指针,若 打开失败,则返回空值NULL,NULL在stdio.h中被定 义为0。文件操作方式mode是一个整数,其取值及含 义如表10-1所示。

流程图
开始 定义文件指针fp,定义整型数组 iArray[5],定义循环变量i 以写二进制文件方式打开文件 fp=fopen("test.dat","wb") N i=0
fp==NULL Y
i<5 Y 输入1个整数存入 数组元素iArray[i]
N
i++
把数组iArray中5 个整数写入文件
显示出错信息 关闭文件 exit(0)
试一试
问题10.1编一程序从键盘输入一串字符“may friendship forever! ”,然后保存在文件myInfo.txt中。 【解题步骤】 1.定义文件指针fp; 2.定义字符数组chInfo用来存输入的字符串; 3.以写文本文件方式打开文件myInfo.txt; 4.如果打开文件失败,则输出错误信息并结束程序; 5.否则,打开文件成功,则从键盘输入数据; 5.将字符数组chInfo中的字符写入文件myInfo.txt; 6.关闭文件。

C语言教程第10章文件操作精品PPT课件

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) =

C语言开发基础教程(Dev-C++) 第10章 文件操作

C语言开发基础教程(Dev-C++) 第10章 文件操作

r+/rb+
读取/更新 以读/写的形式打开一个文本文件/二进制文件,如果文件不 模式 存在,fopen()函数调用失败,返回NULL
w+/wb+
写入/更新 以读/写的形式创建一个文本文件/二进制文件,如果文件已 模式 存在,则重写文件
a+ab+
追加/更新 打开一个文本/二进制文件,允许进行读取操作,但只允许 模式 在文件末尾添加数据,若文件不存在,则创建新文件

10.1.2 文件
文件是存储在外部介质上的数据的 集合。操作系统以文件的形式对数 据进行管理,如果要访问数据,必 须先通过文件名找到相应的文件, 之后才能从文件中读取数据。

10.1.2 文件
一个文件需要有唯一确定的文件标识,以便用户根据标识找到唯一确定 的文件。文件标识包含三个部分,分别为文件路径、文件名主干、文件 扩展名。

10.3.1 单字符读写文件
1、fgetc()函数
FILE *fp;
//定义文件指针
fgetc()函数用于读取文件的字符。 char ch;//定义字 Nhomakorabea变量ch
char fgetc(FILE* fp);
fp = fopen("D:\\test.txt","r");
参数fp表示一个文件指针,返回值 //读取文件中的字符,返回给ch

10.1.4 文件位置指针
向文件中写入数据与从文件中读取数 据是相同的,每写完一个数据后,文 件的位置指针自动按顺序向后移一个 位置,直到数据写入完毕,此时文件 位置指针指向最后一个数据之后,即 文件末尾。

多学一招:文件缓冲区
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档