美文网首页
C语言中文件的读写

C语言中文件的读写

作者: 一叶知秋0830 | 来源:发表于2019-06-29 10:27 被阅读0次

一、打开文件

再进行文件操作之前必须先打开文件,使用 <stdio.h> 头文件中的 fopen() 函数即可打开文件,它的用法为:

// filename为文件路径;mode是打开方式;返回值是FILE类型结构体指针。
FILE *fopen(char *filename, char *mode);

通过判断 fopen() 的返回值是否和 NULL 相等来判断是否打开失败;
mode的值可以是下面其中的一个(下面是文本文件的打开方式,如果是打开二进制文件需要在后面加一个b,比如:rb, wb, ab, rb+, r+b, wb+, w+b, ab+, a+b)。

打开方式 描述
r 打开一个已有的文本文件,允许读取文件。
w 打开一个文本文件,允许写入文件。如果文件不存在,则会创建一个新文件。在这里,您的程序会从文件的开头写入内容。如果文件存在,则该会被截断为零长度,重新写入。
a 打开一个文本文件,以追加模式写入文件。如果文件不存在,则会创建一个新文件。在这里,您的程序会在已有的文件内容中追加内容。
r+ 打开一个文本文件,允许读写文件。
w+ 打开一个文本文件,允许读写文件。如果文件已存在,则文件会被截断为零长度,如果文件不存在,则会创建一个新文件。
a+ 打开一个文本文件,允许读写文件。如果文件不存在,则会创建一个新文件。读取会从文件的开头开始,写入则只能是追加模式。

二、读写文件

读写函数 fprintf 与 fscanf可以从磁盘中读写任意类型的文件,但对二进制文件的读写来说,考虑到文件的读写效率等原因,还是建议尽量使用 fread 和 fwrite 函数进行读写操作。这里主要介绍fread ()fwrite ()两个函数。

文件写入

size_t fwrite(const void * buf, size_t size, size_t count, FILE *fp);

参数说明:
buf 是要写入的内容
size 是指单个元素的大小(单位是字节,比如写入一个 int 型数据就是 4 字节)。
count 指出要写的元素个数。
fp 是要写入的文件
返回值:返回写入的记录数,成功时返回的记录数等于 count 参数,出错返回 0。

文件读取

size_t fread(void *buf, size_t size, size_t count, FILE *fp);

参数说明:
buf 读取内容存放的缓存区指针
size 是指单个元素的大小(单位是字节,比如读取一个 int 型数据就是 4 字节)。
count 指出要读的元素个数。
fp 是要读取的文件
返回值:返回读取的记录数,成功时返回的记录数等于 count 参数,出错或读到文件末尾时返回的记录数小于 count,也可能返回 0。

三、关闭文件

文件操作完毕后一定要关闭文件释放内存,否则会导致内存泄露。

int fclose( FILE *fp );

fp是要关闭的文件,返回值是0时表示关闭成功,否则关闭出错。

四、示例

#include <stdio.h>

int main()
{
    // 打开文件,如果文件不存在就会创建一个新文件
    FILE *f = fopen("./abc.txt","a+");

    // 写入文件
    int flag;
    flag = fwrite("abcdefg",1,8,f);
    if(flag == 8){
        printf("文件写入成功\n");
    }

    // 读取文件
    char buf[1024] = {0};
    // 因为文件打开方式是a+,也即是从后面追加,操作完后游标是在文件末尾,所以需要先将其移动到文件最前面,否则无法读取到内容
    rewind(f);
    fread(buf,1,8,f);
    printf("%s\n",buf);

    // 关闭文件
    flag = fclose(f);
    if(!flag){
        printf("关闭文件成功\n");
    }

    return 0;
}

相关文章

  • C语言读写文件

    C语言文件读写### 标准文件读写 非标准文件读写 标准文件读写 头文件 include 打开文件 函数原型:FI...

  • Python:文件的读写

    任何编程语言都会涉及到文件的读写操作,在python中文件的读写与c语言有异曲同工之妙。 在对文件的处理中,一般分...

  • C语言_文件

    @(C语言) [toc] 读文件 写文件 读写二进制文件

  • C语言读写文件

    从键盘输入字符后,写入到磁盘文件datafile1.txt中 读出磁盘文件datafile.txt中的内容,将它们...

  • C语言读写文件

    fread函数和fwrite函数 1.函数功能 用来读写一个数据块。 2.一般调用形式 fread(buffer,...

  • C语言读写文件

    C读写文件 使用 fopen(文件名,访问模式) 函数来打开文件,一般有getc/putc , fgets/fpu...

  • 【C++】C++文件流操作

    文件操作是每门语言的必学项目,C++中同样如此,且C++中通过流(stream)这一形式进行输入输出、文件读写的控...

  • 【NDK 7】 c/c++ 文件和流操作

    C 语言的文件读写操作 头文件 : stdio.h 函数原型:FILE * fopen(const char * ...

  • pread()函数

    C语言lseek()函数:移动文件的读写位置 头文件: #include #include 定义函数: off_t...

  • C语言文件读写方法

    [TOC] fwrite size_t fwrite ( const void * ptr, size_t siz...

网友评论

      本文标题:C语言中文件的读写

      本文链接:https://www.haomeiwen.com/subject/ujyucctx.html