文件操作(C语言)

导言:

文件操作在C语言中是一个重要的知识点,也是C语言的一个优势,我们应该掌握C语言文件操作的基本流程和一些常用函数,这样就能做一些最基本的操作.


文件操作的基本流程:

                        ①打开文件(复制硬盘中的一份文件到内存中):

                                          fopen函数

                                                功能:打开一个文件,将磁盘上的文件内容复制一份到内存中

                                                原型:

FILE *fopen
(
 const char *filename,    //参数1
const char *mode     //参数2
);

                                                参数说明:

                                                                 参数1:文件的路径(可以是绝对路径也可以是相对路径,如果是相对路径,那么相对的当前所编写的代码文件的目录)

                                                                 参数2:打开方式

                                                                                   "r":只可读,文件不存在的话,函数返回NULL

                                                                                   "w":可读可写,但是不可追加,文件不存在的话自动创建文件

                                                                                    "a":可读可写,并且可追加,文件不存在的话自动创建文件

                                                返回值:FILE*,返回的是一个结构体指针,FILE代表一个结构体

                        ②操作文件(读文件和写文件):

                                          读文件和写文件也是通过C语言提供给我们的函数来完成的,读写函数有多对(根据方式的不同,读写函数有多对,一个读函数和一个写函数是一 一对应的(不是一定的,但是这样比较方便,比如一次性写入3个字节,那么读的时候最好一次性读3个字节,如果读的时候使用了一次性读取一行的方式,那么还要将数据进行分离,比较麻烦),这两个相互对应的函数对文件读写方式是一样的).

读文件(将文件的内容读入到程序中,根据需求将数据进行处理):

      fread函数

             原型:

int fread{
    void* buffer;    //参数1
    int size;    //参数2
    int count;    //参数3
    FILE* stream    //参数4
};

             功能:可以从文件中读入n个字符,读进数组中

            参数说明:

                    参数1:文件读出来的内容所存放的地方,可以是字符数据

                    参数2:同fwrite一样

                    参数3:同fwrite一样

                         note:参数2*参数3的结果是要从文件中读出来的字节总数

                    参数4:文件指针

            返回值:

                  返回读到的字节数

写文件(更新文件):

     fwrite函数

     原型:        

int fwrite{
    const void* buffer;    //参数1
    int size;    //参数2
    int count;    //参数3
    FILE* stream    //参数4
};

                 功能:往文件中写入数据(此时数据是写入内存中的,还没有到磁盘的文件上)

                 参数说明:

                         参数1:要写入的数据的首地址,比如要将int a=2;将a的值写入文件,那么 此时就是将&a传入即可

                         参数2:一般都是sizeof(数据类型)

                         参数3:有多少个这样类型的数据

                                  Note:参数2和参数3的乘积是总共要写入的字节数,比如我们在程序中定义了int a[10],那么参数2一般要填sizeof(int),代表每个int型的数据占用多少个字节,而参数3可以填入10,或者小于10,具体看你要写入多少的字节数到文件,如果全部写入,参数3就填10,代表有10个这样的int型数据,那么两者相乘的结果就是最终要写入到文件中的字节数,即40Byte.其实,只要参数2和参数3的乘积,两者相乘不超过40Byte即可,意味着参数2可以写1,参数3可以写40

                         参数4:要写入的文件的文件指针

                 返回值:

                          如果写入成功,那么函数返回写入到文件中(此时还是在内存)的字节数,如果写入失败,那么返回0.

                        ③关闭文件(保存文件,将在内存修改后的内容写回硬盘):

原型:int fclose(

             FILE* stream;

);

功能:关闭文件(保存到文件中,这步一定要做,否则之前对文件内容的操作全部不起作用)

参数说明:要写入的文件的文件指针

返回值:若文件关闭成功则返回0,如果关闭不成功,则返回-1,错误码放在errno中.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值