APP下载

C语言处理文件的关键技术

2017-04-14罗慧兰

电子技术与软件工程 2017年6期
关键词:C语言代码技术

C语言主要通过编写代码、编译等方式实现运行,对于习惯使用Windows操作系统并通过双击鼠标等方式操作文件的学习者来说,使用编程技术处理文件显得较为难以入手,本文主要介绍C语言处理文件的几个关键技术,通过编写代码实现操作文件的目标,为学习者使用C语言代码操作文件方式方法提供借鉴,促进编程应用技术水平的提升。

【关键词】C语言 代码 文件 技术

本文以文本文件(.txt)为例,具体为:c:\file.txt,将通过介绍关联文件、打开关闭、读写数据等C语言操作文件的关键技术让C语言学习者充分掌握对文件的基本操作。

1 使用结构体指针变量关联文件技术

要善于利用C语言中的库函数读写文件,使用库函数定义好的结构类型FILE管理对象文件的各种信息。

1.1 了解C语言操作文件方式

图1是C语言操作文件方式图,要实现C语言成功操作到磁盘里面的文件,必须通过文件名、使用方式和文件类型指针,也是我们用C语言操作文件的最主要实参。

1.2 了解结构体FILE

在很多的C语言程序设计的教材中都提到让学习者不必关心结构体FILE内部的细节,只需要直接使用即可,但要学到位,达到真正领会并实现应用的水平,了解FILE内部详细内容很有必要,该结构体定义在stdio.h头文件中,代码内容如下:

Typedef struct {

char *_ptr; //文件输入的下一个位置

int _cnt; //当前缓冲区的相对位置

char*_base; //指文件的起始位置

int _flag; //文件标志

int _file; //文件的有效性验证

int _charbuf; //检查缓冲区状况,如果无缓冲区则不读取

char *_tmpfname; //临时文件名

int _fd;//文件号

int _cleft;//缓冲区中剩下的字符数

int _mode;//文件的操作方式

char *_next;//文件当前读写位置

chanr *_buff;//文件缓冲区位置

}; FILE;

其中文件号、操作方式、文件当前位置是文件结构体中最为核心内容,理解结构体中的具体内容有助于如何更好地灵活读写文件。

1.3 定义文件指针

要操作一个文件,必须明确该文件在磁盘中的具体位置和文件名,实际是要确定文件所在磁盘物理地址,定义好文件指针,为之后正常读写文件打下基础,具体在代码中的表达方式为:“FILE *wj;”。其中“wj”是类型为FILE的文件指针变量,“*”一定不能省略,以后就用“wj”来代替文件的具体路径和具体文件,也就是说“wj”就是文件的具体代号,包括文件的具体路径、文件名等都由它了全权代表。

1.4 调用库函数关联文件

调用库函数fopen,实现将文件指针wj与要操作的具体文件建立关联,具体实现代码为:wj=fopen(“c:\\file.txt”,“r”);其中fopen函数需要两个参数,第一个参数是包含有具体路径的文件名,第二个参数“r”是表示打开文件方式,这里表示是只读取内容。

Fopen函数的返回值是一个FILE类型的地址,wj与文件关联,实际就是将fopen返回的这个地址保存到指针变量wj中,但不只是地址,还有其他相关文件的重要信息,这也是为什么使用结构体的缘故。

2 调用库函数打开和关闭文件技术

通过fopen库函数把C语言與磁盘中的文件进行了关联,接下来就可以进行后续的读写操作。

2.1 文件的打开

首先要对文件的打开成功与否进行判断,只有文件打开成功才能进行后续的读写操作,若打开失败应给出一些提示,不能再读写文件,这是很有必要的,可能会存在由于磁盘已满、文件损坏、文件夹不存在等原因而导致打开文件失败。在系统中,文件打开失败时fopen的返回值是0或NULL(即返回空指针),如文件打开成功,fopen的返回值为非0,可以通过以下代码实现:

FILE *wj;

Wj=fopen(“c:\\file.txt”,“r”);

If(wj==NULL)

Printf(“文件打开失败!”);

Else

/*读写文件*/

把文件指针wj与具体文件file.txt关联起来,如果fopen函数的返回值为非0,就可以判断该文件已成功被打开。

2.2 文件的关闭

文件指针与文件关联,是为了指针代表文件,以便后续的读写操作,需要占用系统资源,不能长期占用,否则可能导致文件信息丢失等情况,因此在程序运行结束之前,必须让指针和文件解除关系以释放系统资源,这个过程称为关闭文件,C语言通过使用fclose库函数实现文件的关闭,具体代码为:“fclose(wj);”参数是文件指针变量名。

解除关联后,文件指针wj不再代表文件file.txt,不能再通过wj读写该文件,在程序运行过程中,随时可以用fclose库函数关闭文件,即解除指针与文件的关联关系,此时可以使用wj关联其他文件。

3 读写文件数据信息技术

3.1 用库函数fscanf读取文件数据代码

文件file.txt中有2列数据,共5行,第1列为序号(int型),第2列为分数(float型),读取数据代码如下:

#include

Main()

{FILE *wj;int a,b;float c;

Wj=fopen(“c:\\file.txt”,“r”);

For(a=1;a<6;a++)

{fscanf(wj,“%d %f”,&b,&c);}

Fclose(wj);}

通过编译,界面会显示file.txt中的数据,共5行2列,第1列为序号,第2列为分数。

3.2 用库函数fprintf写入文件信息代码

#include

Main()

{FILE *wj;

Wj=fopen(“c:\\file.txt”,“w”);

Fprintf(wj,“good!”);

Fclose(wj);}

通过编译,位于C盘下file.txt文件被写入“good!”文本。

通过以上内容可以总结出C语言对文件操作流程为:定义文件指针变量、打开文件、读写文件和关闭文件,分别要用到结构类型FILE、库函数fopen和库函数fclose,在读写是还要使用到fscanf和fprintf库函数,为C语言学习者提供借鉴。

参考文献

[1]百度百科.

[2]谭浩强.C程序设计[M].北京清华大学出版社,1999.

[3]张蕾.基于项目化教学的“C语言程序设计”课程改革[J].教改纵横,2013(02):17.

[4]肖捷.C语言程序设计实践教学方案研究与设计[J].东莞理工学院学报,2012.19(05).

作者简介

罗慧兰(1981-),女,广东省广州市人。软件工程硕士,讲师。研究方向为计算机软件、计算机网络、电子商务。

作者单位

广东生态工程职业学院 广东省广州市 510520

猜你喜欢

C语言代码技术
基于Visual Studio Code的C语言程序设计实践教学探索
创世代码
创世代码
创世代码
创世代码
基于C语言的计算机软件编程
高职高专院校C语言程序设计教学改革探索
论子函数在C语言数据格式输出中的应用