C语言进阶-文件操作

目录

一.前言

一.FILE结构类型

二.fopen函数

三.fclose函数

四.各类常用文件操作函数

1.fscanf

2.fprintf

3.fread

4.fwrite

5.fgetc

6.fputc

7.fgets

8.fputs

9.fseek 


一.前言

大家好,我是大鹏,今天带大家一起来学习C语言进阶中的文件操作部分,本节课中将会讲到文件操作中的各种函数以及使用方法

一.FILE结构类型

FILE类型是一个结构体,.

FILE 是 C语言文件结构定义, 打开文件和文件操作要用到这类结构

truct file 的最重要成员在这展示.
1.mode_t f_mode;
文件模式确定文件是可读的或者是可写的(或者都是), 通过位 FMODE_READ 和FMODE_WRITE. 你可能想在你的 open 或者 ioctl 函数中检查这个成员的读写许可, 但是不需要检查读写许可, 因为内核在调用你的方法之前检查. 当文件还没有为那种存取而打开时读或写的企图被拒绝, 驱动甚至不知道这个情况.
2.loff_t f_pos;
当前读写位置. loff_t 在所有平台都是 64 位( 在 gcc 术语里是 long long ). 驱动可以读这个值,如果它需要知道文件中的当前位置, 但是正常地不应该改变它; 读和写应当使用它们作为最后参数而收到的指针来更新一个位置, 代替直接作用于 filp->f_pos. 这个规则的一个例外是在 llseek 方法中, 它的目的就是改变文件位置.
3.unsigned int f_flags;
这些是文件标志, 例如 O_RDONLY, O_NONBLOCK, 和 O_SYNC. 驱动应当检查O_NONBLOCK 标志来看是否是请求非阻塞操作; 其他标志很少使用. 特别地, 应当检查读/写许可, 使用 f_mode 而不是f_flags. 所有的标志在头文件

这些只了解就行了

二.fopen函数

fopen函数是用来打开文件的,fopen在MSDN中的介绍如下

FILE* pc=fopen("文件路径","具体操作");//打开文件

至于这个"具体操作"分为以下几个操作

wt”      只写打开或建立一个文本文件,只允许写数据

“at”      追加打开一个文本文件,并在文件末尾写数据

“rb”      只读打开一个二进制文件,只允许读数据

“wb”       只写打开或建立一个二进制文件,只允许写数据

“ab”       追加打开一个二进制文件,并在文件末尾写数据

“rt+”      读写打开一个文本文件,允许读和写

“wt+”      读写打开或建立一个文本文件,允许读写

“at+”      读写打开一个文本文件,允许读,或在文件末追加数 据

“rb+”      读写打开一个二进制文件,允许读和写

“wb+”      读写打开或建立一个二进制文件,允许读和写

“ab+”      读写打开一个二进制文件,允许读,或在文件末追加数据对于文件使用方式有以下几点说明:1. 文件使用方式由r,w,a,t,b,+六个字符拼成,各字符的含义是:r(read): 读w(write): 写a(append): 追加t(text): 文本文件,可省略不写b(banary): 二进制文件+: 读和写

三.fclose函数

fclose是关闭某个文件,它的返回值是int型,具体操作如下

FILE* pc=fopen("文件路径","具体操作");//打开文件
fclose(pc);//关闭pc文件

四.各类常用文件操作函数

1.fscanf

在这里我们可以对比一下scanf函数的用法

通过对比我们可以发现,fscanf函数只是多了个文件流,所以fscanf是从文件中读取数据,而不是从控制台输入数据。fscanf和scanf相同不识别fscanf函数和scanf函数。

2.fprintf

从fprintf对比我们可以参考一下printf函数

与printf不同的就是,fprintf会同时将数据写入变量中,同时将按照要求从文件中输出信息。

3.fread

C语言进阶-文件操作_第1张图片

fread函数,来从件中读取数据,其中第一个参数为,将读取的数据放入*buffer中,size为一个单位所占的字节数,count是单位数的数量,而stream为文件的FILE指针。 

也可以理解成一种输入函数,从文件中读取。

4.fwrite

C语言进阶-文件操作_第2张图片

fwrte 是一种写入函数,将数据写入到文件里。与fread类似,但是fread只是从文件中读取数据,而不会将数据写入到文件中,这里是将*buffer指针指向的数据变量写入到stream文件中。

5.fgetc

从文件中获取第一个字符

6.fputc

 

将一个字符写入到文件中

7.fgets

这里的n是指要获取的字符串长度。 

从文件中获取一段字符串

8.fputs

 

将一段字符串写入到文件中

9.fseek 

fseek 第一个参数是文件指针,也就是你要操作的文件,第二个参数是偏移量,第三个参数是,起始位置(这里的起始位置,不是指文件的起始位置,这个其实位置是可以自己定义的)

这里的三个变量的家可以参考一下

在fseek函数中,这三个数值,可以用在第三个参数里,非常方便。

具体fseek的用法如下。

    fseek(pf, 5, SEEK_SET);
	ch = fgetc(pf);//e
	printf("%c\n", ch);

比如说在这个操作中,pf文件中是abcdef,然后输出的将是字母e 

 

 

 

你可能感兴趣的:(零基础学好C语言,c语言)