高手解答:什么是文件型指针?通过文件指针访问文件有什么好处?

高手解答:什么是文件型指针?通过文件指针访问文件有什么好处?,第1张

在C语言上,文件指针就是指FILE类型的指针,它指向一个文件类型的结构,结构里包含着该文件的各种属性。

文件指针用于跟踪当前文件的位置。比如,你向文件输入一个字节,那么文件指针就是自动地向前移动一个字节的位置。使用文件指针的好处,我学了这么久也没有想过。是可以随机访问文件和把I/O *** 作是抽象为文件 *** 作。

扩展资料:

定义说明文件指针的一般形式为:

FILE *指针变量标识符;其中FILE应为大写,它实际上是由系统定义的一个结构,该结构中含有文件名、文件状态和文件当前位置等信息。在编写源程序时不必关心FILE结构的细节。

在使用文件时,需要在内存中为其分配空间,用来存放文件的基本信息,给结构体类型是由系统定义的,C语言规定该类型为FILE型。

参考资料来源:百度百科-文件指针

c语言 *** 作文本应该怎么使用,这对于很多新手来说,是很难的一件事情,下面我为大家带来了关于c语言 *** 作文本的基本使用方法,欢迎大家阅读!

c语言 *** 作文本的基本使用方法

1.字符读写:

fgetc函数的功能是从指定的文件中读一个字符,函数调用的形式为:

字符变量=fgetc(文件指针)

fputc函数的功能是把一个字符写入指定的文件中,函数调用的形式为:

fputc(字符量,文件指针)

2.字符串读写

读字符串函数fgets

函数的功能是从指定的文件中读一个字符串到字符数组中,函数调用的形式为:

fgets(字符数组名,n,文件指针)

写字符串函数fputs

fputs函数的功能是向指定的文件写入一个字符串,其调用形式为:

fputs(字符串,文件指针)

3.数据块读写

读数据块函数调用的一般形式为:

fread(buffer,size,count,fp)

写数据块函数调用的`一般形式为:

fwrite(buffer,size,count,fp)

4.格式化读写

fscanf函数,fprintf函数与前面使用的scanf和printf函数的功能相似,都是格式化读写函数。两者的区别在于fscanf函数和fprintf函数的读写对象不是键盘和显示器,而是磁盘文件。

这两个函数的调用格式为:

fscanf(文件指针,格式字符串,输入表列)

fprintf(文件指针,格式字符串,输出表列)

文件定位

移动文件内部位置指针的函数主要有两个,即rewind函数和fseek函数。

rewind函数前面已多次使用过,其调用形式为:

rewind(文件指针)

它的功能是把文件内部的位置指针移到文件首。

下面主要介绍fseek函数。fseek函数用来移动文件内部位置指针,其调用形式为:

fseek(文件指针,位移量,起始点)

其中:

“文件指针”指向被移动的文件。

“位移量”表示移动的字节数,要求位移量是long型数据,以便在文件长度大于64KB时不会出错。当用常量表示位移量时,要求加后缀“L”。

“起始点”表示从何处开始计算位移量,规定的起始点有三种:文件首,当前位置和文件尾。其表示方法如下表。

c语言 *** 作文本的基本使用方法1

起始点表示符号数字表示

文件首SEEK_SET0

当前位置SEEK_CUR1

文件末尾SEEK_END2

例如:

fseek(fp,100L,0)

其意义是把位置指针移到离文件首100个字节处。

还要说明的是fseek函数一般用于二进制文件。在文本文件中由于要进行转换,故往往计算的位置会出现错误。

c语言中常用的文件检测函数有以下几个。

文件结束检测函数feof函数

调用格式:

feof(文件指针)

功能:判断文件是否处于文件结束位置,如文件结束,则返回值为1,否则为0。

读写文件出错检测函数

ferror函数调用格式:

ferror(文件指针)

功能:检查文件在用各种输入输出函数进行读写时是否出错。如ferror返回值为0表示未出错,否则表示有错。

文件出错标志和文件结束标志置0函数

clearerr函数调用格式:

clearerr(文件指针)

功能:本函数用于清除出错标志和文件结束标志,使它们为0值。

在文件 *** 作系统中,同时打开的文件个数是受限的,因此在 *** 作系统中对于文件的 *** 作专门设置了一个区域,这个区中为每个文件 *** 作开设了一块 *** 作数据区,其中每个区对应一个文件 *** 作,记录文件位置,当前文件指针位置等,如果进行文件 *** 作需要获得系统分配的一块有效的数据区,这个数据区的编号就是文件句柄,在c中是FILE *类型

*** 作数据区中,有一个文件指针,存放当前可读写文件位置,是一个字节计数值,在打开当前文件后,这个指针指向文件第1个字符,取值是0,那么如果马上读写文件都是从文件第1个字节开始,假定写入或读取了1个字节内容,文件指针在 *** 作完成后自动变为1,指向下一个可 *** 作的位置。文件指针可以顺序后移(增加值)也可以前移(减少值)当然要借助特殊函数。

假定要获取文件尺寸,可以在打开文件后(文件指针内容为0)利用文件指针 *** 作函数(比如feek)令文件指针转到文件尾部,这时文件指针取值就是文件的实际字节数了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12044451.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存