当前位置:   article > 正文

C语言文件操作(具体操作)_c语言文档

c语言文档

引言:

     本文只涉及具体的文件操作步骤,无文件理论相关知识  。                                                                                                                                                                                       

一·文件打开与关闭。

首先,对文件进行读取与写入时,都需要先打开文件。

我们可以使用C语言标准库提供的fopen和fclose进行打开与关闭。


1·fopen

参数:

filename(文件名),mode(模式),FILE(文件)。

解读一下:FILE是C语言规定的文件指针类型(结构体指针)。当文件运行时会产生文件信息区(内存),这块内存存放着一个结构体FILE,用于存放文件相关信息,如:文件的名字,文件状态及文件当前的位置等,而指向这块内存(结构体)位置的指针就是文件指针(FILE)本质就是一个结构体指针。如图(vs2013版本):

mode:我们要对这个文件进行怎样的操作(简单举例)。

注意:mode是(const char *)类型的变量。而" abcd "这样的字符串作为变量时传入的就是首字符的地址。切记不要写成 ( '  ' )单引号了。 

" w "为了输出数据,打开⼀个⽂本⽂件建⽴⼀个新的⽂件
" r "为了输⼊数据,打开⼀个已经存在的⽂本⽂件出错
" a "向⽂本⽂件尾添加数据建立一个新文件
使用:

2·fclose

参数:

fclose(成功返回0,失败返回EOF),stream(待关闭文件的文件指针)。

使用:

二·文件操作

函数名功能
fputc单个字符输入(程序到文件)
fgetc单个字符读取(文件到程序)
fputs字符串的输入
fgets字符串读取
fprintf格式化输入(写)到指定流中
fscanf格式化从指定流中读取(读)数据
fwrite二进制输入(写)到指定流中
fread二进制从指定流中读取(读)数据

1·fputc

参数:

character(字符)(之所是int型,是ASCLL码值),stream(输出流)(写入的文件地址)。fputc(返回输入字符的ASCLL值)。

使用:

2·fgetc

参数:

stream(文件地址),fgetc(成功返回字符的ASCLL,失败返回EOF)

使用:

3·fputs

参数:

str(要输入的字符串),stream(待输入的文件的地址),fputs(成功返回非负值,失败返回EOF)。

使用:

        

4·fgets

参数:

str:(读取文件,就是从文件里面拿数据。既然拿数据,数据需要存放的空间。前面的fgetc读取一个字符,直接返回该字符的ASCLL值,也算是将数据储存了。而该函数返回一个字符串,就需要一个字符数组来接收。)

num:(读取的最大字符数。默认在最后一位添加 ' \0  ',所以实际上读取 ( num - 1 )位,当文件大于num-1是只读到 num-1 位加 ' \0  '结束,小于num -1 时,有几位读取几位。)

stream:(待读取的文件的地址)

fgrts:(返回储存文件的地址,与上文创建的字符数组地址一样。)

使用:

5·fprintf

参数:

stream(流)(待输入的文件的地址)(stdout 标准输出流 对应屏幕终端)

format(格式)(与printf一样)

printf就是把直接输出到屏幕终端,也就是(FILE*stream)为(stdout)的情况。

fprintf(成功输出的数据个数)

从右到左,把(........)的数据以(..........)的形式输出到 / 写到 (..........)里

使用:

6·fscanf


参数:

fscanf较scanf函数多了一个参数(FILE * stream),scanf从键盘终端收取数据,传输(写)到后面的地址。而fscanf多出的(FILE*stream)就是从指定的流中收取数据,写到指定的地址处。

使用:

7·fwrite

以二进制的形式输入(写入 " wb " )文件。

参数:

ptr:(待写入的文件的地址)

size:(输入文件个数)

count:(每一个元素的大小)

stream:(输出流)(输出文件的地址)

使用:

(小端存放)

8·fread

参数:

从stream中以二进制读取数据传输到ptr指向的地址中。

使用:

注意:

以上函数使用后会默认将文件内的光标向后移动一位,即按顺序操作。

三·文件操作调整,检验函数

1·fseek

作用:

调整文件内的光标。

参数:

stream:(流)操作文件的文件地址。

offset:(偏移量)相对于origin。

origin:(位置)该参(SEEK_SET)起始位置,(SEEK_CUR)当前位置,(SEEK_END)文件末尾位置。

使用:

2·rewind

作用:

调整文件光标到起始位置。

参数:

stream(待调整文件的文件地址。)

使用:

3·ftell

作用:

返回当前文件光标偏离量。


参数:

stream:(待操作的文件地址)

ftell

使用:

4·feof和ferror

作用:

feof :在文件结束后,判断是否是读取到文件结尾。

ferror :在文件结束后,判断是否是读取错误。

总结:二者一般连用,且目的是分析文件读取结束的原因。

参数:

stream:(待操作文件)

feof:(是结尾返回非零值)

ferror:(出错返回非零值)

使用:

四·结言

初学C语言,如果有哪里写的不好的地方,欢迎在评论区指点,如果认为小编写的还不错的,可以留下你们点赞 ,收藏和关注,这是对小编极大的认可也是小编继续走下去的动力。谢谢大家!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/运维做开发/article/detail/789662
推荐阅读
相关标签
  

闽ICP备14008679号