C库函数fopen/fread/fwrite/fclose/fseek/ftell

fopen(打开一个文件,返回指向该文件的指针)

        函数原型

                    FILE * fopen(const char *path,cost char *mode)

        参数说明

                const char *path

                                打开文件文件路径及文件名

                cost char *mode

                                文件打开方式


                                注:mode有以下值:

                                        r:只读方式打开,文件必须存在

                                        r+:可读写,必须存在

                                        rb+:打开二进制文件,可以读写

                                        rt+:打开文本文件,可读写

                                        w:只写,文件存在则文件长度清0,文件不存在则建立该文件

                                        w+:可读写,文件存在则文件长度清0,文件不存在则建立该文件

                                        a:附加方式打开只写,不存在建立该文件,存在写入的数据加到文件尾,EOF符保留

                                        a+:附加方式打开可读写,不存在建立该文件,存在写入的数据加到文件尾,EOF符不保留

                                        wb:打开二进制文件,只写

                                        wb+:打开或建立二进制文件,可读写

                                        wt+:打开或建立文本文件,可读写

                                        at+:打开文本文件,可读写,写的数据加在文本末尾

                                        ab+:打开二进制文件,可读写,写的数据加在文件末尾
fread(从文件流读取数据)

        函数原型

                size_t fread(void* buff,size_t size,size_t count,FILE* stream)


        参数说明

                void*  buff

                        数据块指针(接收数据)

                size_t  size

                        单个数据大小

                size_t count

                        数据个数

                FILE* stream

                        文件指针(fopen()函数的返回指针)

                返回值

                        读取总数据数据个数


fwrite(将内存区域中数据写入文本)
        函数原型:

                size_t fwrite(const void* buffer, size_t size, size_t count, FILE* stream); 

                        const void* buffer

                                指向数据块的指针 

                        size_t size

                                每个数据的大小,单位为Byte(例如:sizeof(int)就是4) 

                        size_t count

                                数据个数  

                        FILE* stream

                                文件指针 

                        返回值

                            随着调用格式的不同而不同(count参数相关)


                                   调用格式:fwrite(buf,sizeof(buf),1,fp);

                                                成功写入返回值为1(即count)

                                    调用格式:fwrite(buf,1,sizeof(buf),fp);

                                                成功写入则返回实际写入的数据个数(单位为Byte)

ftell(得到文件位置指针相对于文件首地址的偏移字节数)

函数原型

        long ftell(FILE *fp)

函数功能

        返回当前文件指针的位置。这个位置是指当前文件指针相对于文件开头的位移量。

返回值

        返回文件指针的位置,若出错则返回–1L


fseek( 设置文件指针stream位置

函数原型

          int fseek(FILE *stream,long offset,int framewhere)

参数说明

        FILE *stream

                文件指针

        long offset

                指针偏移量

        int framewhere

                指针基地址

        返回值

                重定位成功返回0,否则返回非零值

详细说明

    函数不重定位文件指针,而是重定位文件内部的指针

            文件内部数据指针指向所需数据上(重定位)

    执行成功

        stream指向以fromwhere为基准,偏移offset个字节的位置

    执行失败

       保留原来stream的位置不变 (例:offset偏移位置超出文件大小)

其他

           int framewhere

                设定从文件的哪里开始偏移

                        可取值为:SEEK_CUR、 SEEK_END 、 SEEK_SET

                              SEEK_SET              文件开头(宏值为0)
                              SEEK_CUR            当前位置(宏值为1)
                              SEEK_END            文件结尾(宏值为2)
                      例
                          fseek(fp,100L,0);把fp指针移动到离文件开头100字节处;
                          fseek(fp,100L,1);把fp指针移动到离文件当前位置100字节处;
                          fseek(fp,100L,2);把fp指针退回到离文件结尾100字节处。


fclose(关闭文件流)

函数原型

        int fclose(FILE *stream)

功能说明

        关闭一个文件流,使用fclose就可以把缓冲区内最后剩余的数据输出到磁盘文件中,并释放文件指针和有关的缓冲区

        打开一个文件流后,后续不用需关闭

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值