第9章 文 件Word文档下载推荐.docx

上传人:b****2 文档编号:14985965 上传时间:2022-10-26 格式:DOCX 页数:22 大小:54KB
下载 相关 举报
第9章 文 件Word文档下载推荐.docx_第1页
第1页 / 共22页
第9章 文 件Word文档下载推荐.docx_第2页
第2页 / 共22页
第9章 文 件Word文档下载推荐.docx_第3页
第3页 / 共22页
第9章 文 件Word文档下载推荐.docx_第4页
第4页 / 共22页
第9章 文 件Word文档下载推荐.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

第9章 文 件Word文档下载推荐.docx

《第9章 文 件Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《第9章 文 件Word文档下载推荐.docx(22页珍藏版)》请在冰豆网上搜索。

第9章 文 件Word文档下载推荐.docx

intmain()

{FILE*fp;

//定义文件指针

if((fp=fopen("

fi.txt"

"

w"

))==NULL)//打开文件

{printf("

Fileopenerror!

\n"

);

exit(0);

}

fprintf(fp,"

%s"

HelloWorld!

"

//写文件

if(fclose(fp))//关闭文件

Cannotclosethefile!

\n"

return0;

}

运行程序后,在你所建此程序的目录中,新建一个fi.txt文件,用记事本(或其它文本编辑工具)打开查看,其内容就是”HelloWorld!

“,如图9.1所示。

程序中的fopen()、fprintf()、fclose()是文件操作的函数,在stdio.h中定义。

exit语句是退出,在stdlib.h中定义。

 

图9.1查看fi.txt文件内容

例2将下列数据写入文件f.dat中,并再将其读出显示到屏幕上。

301101张山91

301102陈启85

301103王亮78

301104郑旦69

301105郭敏80

longnum;

//学号

charstname[20];

//姓名

intscore;

//成绩

f.dat"

))==NULL)//打开文件

301101张山91\n301102陈启85\n301103王亮78

\n301104郑旦69\n301105郭敏80\n"

//将学生数据写到文件中

if(fclose(fp))//关闭文件注意:

”\“在程序中表示其后面的数据放在下一行。

if((fp=fopen("

r"

Fileopenerror!

while(!

feof(fp))

{fscanf(fp,"

%ld%s%d"

&

num,stname,&

score);

//fscanf函数是将数据读入

printf("

%ld%s%d\n"

num,stname,score);

//输出到屏幕上

};

if(fclose(fp))

Cannotclosethefile!

运行程序后,在你所建此程序的目录中,新建一个f.dat文件。

双击这个文件出现一个小对话框,在小对话框上点击“打开方式”,又出现一个对话框,选择“从列表中选择程序”,点击“确定”,出现“打开方式”对话框,从中选择“记事本”双击,便在屏幕上显示出该文件的信息。

如图9.2所示。

图9.2读取学生成绩文件的内容

程序中调用fscanf()函数,将文件中的数据读入到变量num、stname和score,并通过printf()函数把结果输出到屏幕。

在C语言中,文件最基本的操作有两个:

从磁盘文件中读取信息(读操作)和把信息放到磁盘文件中(写操作)。

为了实现读写操作,首先要定义文件指针,并确定被操作文件的具体文件名,请求系统分配文件缓冲区单元,然后进行文件读写,文件操作完成后关闭文件。

在文件操作中,先定义指向文件的指针,然后通过调用专门的函数来实现文件的所有操作。

下面先介绍文件的打开、关闭、读、写。

1、打开文件

打开文件由标准函数fopen()实现,其一般调用形式为:

Fopen(“文件名“,“文件打开方式”);

说明:

a、该函数有返回值,如果执行成功,函数将返回包含文件缓冲区等信息的FILE结构体地址,赋给文件指针fp。

否则,返回一个NULL(空值)的FILE指针。

b、括号内包括两个参数:

“文件名”和“文件打开方式”。

两个参数都是字符串。

“文件名”指出要对哪个具体文件进行操作,一般要指定文件的路径,如果不写出路径名,则默认与本程序的当前路径相同。

文件打开方式用来确定对所打开的文件将进行是么操作。

表9.1列出了C语言所有的文件打开方式。

从表9.1可知,比如用”r“表示打开一个文本文件并进行读数据操作,”w“表示建立一个新的文本文件,并向该文件进行写数据操作。

二进制文件操作与文本文件操作一样,只不过打开方式的表示多加了个字符”b“做后缀。

表9.1文件打开方式

文本文件(ASCCI)二进制文件

使用方式含义使用方式含义

“r“打开文本文件进行只读“rb“打开二进制文件进行只读

“w“建立新文本文件进行只写“wb“建立二进制文件进行只写

“a”打开文本文件进行追加“ab“打开二进制文件进行写\追加

“r+“打开文本文件进行读/写“rb+“打开二进制进行读/写

“w+“建立新文本文件进行读/写“wb+“建立二进制新文件进行读/写

“a+“打开文本文件进行读/写追加“ab+“打开二进制文件进行读/写/追加

下面两种方法都以读的方式打开abc.txt文件:

fp=fopen(“abc.txt“,”r“);

//用字符串常量表示文件

char*p=“abc.txt“;

//用字符指针表示文件

fp=fopen(p,”r”);

2、关闭文件

当文件操作完后,应及时关闭它,以防止不正常的操作。

关闭文件通过调用标准函数fclose()实现,其一般格式为:

fclose(文件指针);

该函数将返回一个整数,若该数为0表示正常关闭文件,否则表示无法正常关闭文件,所以关闭文件也应使用条件判断:

if(fclose(fp))

{

printf(“Cannotclosethefile!

\n”);

exit(0);

要养成文件使用结束后及时关闭的习惯,一则确保数据完整写入文件,二则及时释放不用的文件缓冲区单元。

3、文件复制

例3已知一个文本数据文件f.dat(例2中建好的文件),请将该文件复制一份,保存到文件f2.dat中,并将f2.dat内容在屏幕上显示出来。

{FILE*fp1,*fp2;

charc='

'

;

intscore,i=0;

if((fp1=fopen("

))==NULL)//打开已有的f.dat文件,要读出数据

if((fp2=fopen("

f2.dat"

))==NULL)//建立f2.dat文件,并打开它,要往里写数据

while(!

feof(fp1))//只要!

feof(fp1)为真,说明fp1指针还没有指向文件末尾

{c=fgetc(fp1);

//将文件的一个字符赋给c

fputc(c,fp2);

//将字符复制到f2.dat

if(fclose(fp1))//关闭f.dat

if(fclose(fp2))//关闭f2.dat

))==NULL)//打开f2.dat文件,要读出数据

do//将复制好的f2.dat文件内容再显示到屏幕上

{//fscanf函数是将f2.dat文件中的数据读入到变量中

fscanf(fp2,"

//将变量内容输出到屏幕上

i++;

}while(i<

5);

//这里一共有5行(0-4)输出,所以i<

5,而用while(!

feof(fp2))语句控制结束,程序结束不

//了,不知为什么?

可能最后找不到结束符标志,得需要程序给加上一个才行。

if(fclose(fp2))

}

运行该程序,观察源程序所在目录下是否产生了f2.dat文件,用记事本打开它,可以看到它与f.dat的内容完全相同。

本程序实现了复制文件功能,涉及对两个文件的操作,所以程序定义了两个FILE结构类型的指针,并分别打开了文件f.dat和f2.dat。

在while循环中,只要!

feof(fp1)为真,说明fp1指针还没有指向文件末尾,就反复从文件f.dat中读入字符,并将该字符写入文件f2.dat。

最终把f.dat文件中的字符逐一读出并写入到文件f2.dat,完成文件赋值。

最后分别调用fclose()函数关闭指针fp1和fp2,结束文件操作。

在C语言中,scanf()和printf()函数是针对键盘输入和屏幕输出的标准函数。

C语言为文件的读写操作也定义了一系列标准函数,它们都在”stdio.h“中说明,因此文件操作需要包含有标准I/O的文件:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 财会金融考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1