C语言文件的顺序读写函数是什么

发布时间:2022-04-27 10:32:12 作者:iii
来源:亿速云 阅读:335

C语言文件的顺序读写函数是什么

在C语言中,文件操作是非常重要的一部分。文件操作允许程序从文件中读取数据或将数据写入文件。文件操作可以分为顺序读写和随机读写两种方式。本文将详细介绍C语言中用于顺序读写的函数,并通过示例代码展示如何使用这些函数。

1. 文件操作的基本概念

在C语言中,文件操作通常涉及以下几个步骤:

  1. 打开文件:使用fopen()函数打开文件,并返回一个指向文件的指针。
  2. 读写文件:使用各种读写函数对文件进行读取或写入操作。
  3. 关闭文件:使用fclose()函数关闭文件,释放资源。

1.1 文件指针

在C语言中,文件操作是通过文件指针来进行的。文件指针是一个指向FILE结构体的指针,FILE结构体包含了文件的相关信息,如文件的位置、缓冲区等。

FILE *fp;

1.2 打开文件

使用fopen()函数打开文件,其原型如下:

FILE *fopen(const char *filename, const char *mode);

1.3 关闭文件

使用fclose()函数关闭文件,其原型如下:

int fclose(FILE *stream);

2. 顺序读写函数

顺序读写是指按照文件中数据的顺序依次读取或写入数据。C语言提供了多个函数用于顺序读写文件,下面将详细介绍这些函数。

2.1 fgetc()fputc()

2.1.1 fgetc()

fgetc()函数用于从文件中读取一个字符,其原型如下:

int fgetc(FILE *stream);

2.1.2 fputc()

fputc()函数用于向文件中写入一个字符,其原型如下:

int fputc(int c, FILE *stream);

2.1.3 示例代码

#include <stdio.h>

int main() {
    FILE *fp;
    char ch;

    // 打开文件
    fp = fopen("test.txt", "w");
    if (fp == NULL) {
        printf("文件打开失败\n");
        return 1;
    }

    // 写入字符
    fputc('H', fp);
    fputc('e', fp);
    fputc('l', fp);
    fputc('l', fp);
    fputc('o', fp);

    // 关闭文件
    fclose(fp);

    // 重新打开文件
    fp = fopen("test.txt", "r");
    if (fp == NULL) {
        printf("文件打开失败\n");
        return 1;
    }

    // 读取字符
    while ((ch = fgetc(fp)) != EOF) {
        printf("%c", ch);
    }

    // 关闭文件
    fclose(fp);

    return 0;
}

2.2 fgets()fputs()

2.2.1 fgets()

fgets()函数用于从文件中读取一行字符串,其原型如下:

char *fgets(char *str, int n, FILE *stream);

2.2.2 fputs()

fputs()函数用于向文件中写入一个字符串,其原型如下:

int fputs(const char *str, FILE *stream);

2.2.3 示例代码

#include <stdio.h>

int main() {
    FILE *fp;
    char str[100];

    // 打开文件
    fp = fopen("test.txt", "w");
    if (fp == NULL) {
        printf("文件打开失败\n");
        return 1;
    }

    // 写入字符串
    fputs("Hello, World!\n", fp);
    fputs("This is a test file.\n", fp);

    // 关闭文件
    fclose(fp);

    // 重新打开文件
    fp = fopen("test.txt", "r");
    if (fp == NULL) {
        printf("文件打开失败\n");
        return 1;
    }

    // 读取字符串
    while (fgets(str, 100, fp) != NULL) {
        printf("%s", str);
    }

    // 关闭文件
    fclose(fp);

    return 0;
}

2.3 fscanf()fprintf()

2.3.1 fscanf()

fscanf()函数用于从文件中格式化读取数据,其原型如下:

int fscanf(FILE *stream, const char *format, ...);

2.3.2 fprintf()

fprintf()函数用于向文件中格式化写入数据,其原型如下:

int fprintf(FILE *stream, const char *format, ...);

2.3.3 示例代码

#include <stdio.h>

int main() {
    FILE *fp;
    int num;
    float fnum;

    // 打开文件
    fp = fopen("test.txt", "w");
    if (fp == NULL) {
        printf("文件打开失败\n");
        return 1;
    }

    // 写入格式化数据
    fprintf(fp, "%d %f\n", 10, 3.14);
    fprintf(fp, "%d %f\n", 20, 6.28);

    // 关闭文件
    fclose(fp);

    // 重新打开文件
    fp = fopen("test.txt", "r");
    if (fp == NULL) {
        printf("文件打开失败\n");
        return 1;
    }

    // 读取格式化数据
    while (fscanf(fp, "%d %f", &num, &fnum) != EOF) {
        printf("%d %f\n", num, fnum);
    }

    // 关闭文件
    fclose(fp);

    return 0;
}

2.4 fread()fwrite()

2.4.1 fread()

fread()函数用于从文件中读取二进制数据,其原型如下:

size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);

2.4.2 fwrite()

fwrite()函数用于向文件中写入二进制数据,其原型如下:

size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);

2.4.3 示例代码

#include <stdio.h>

struct Student {
    char name[50];
    int age;
    float score;
};

int main() {
    FILE *fp;
    struct Student stu1 = {"Alice", 20, 95.5};
    struct Student stu2;

    // 打开文件
    fp = fopen("test.bin", "wb");
    if (fp == NULL) {
        printf("文件打开失败\n");
        return 1;
    }

    // 写入二进制数据
    fwrite(&stu1, sizeof(struct Student), 1, fp);

    // 关闭文件
    fclose(fp);

    // 重新打开文件
    fp = fopen("test.bin", "rb");
    if (fp == NULL) {
        printf("文件打开失败\n");
        return 1;
    }

    // 读取二进制数据
    fread(&stu2, sizeof(struct Student), 1, fp);
    printf("Name: %s, Age: %d, Score: %.2f\n", stu2.name, stu2.age, stu2.score);

    // 关闭文件
    fclose(fp);

    return 0;
}

3. 总结

C语言提供了多种函数用于文件的顺序读写操作。通过这些函数,程序可以方便地从文件中读取数据或将数据写入文件。本文详细介绍了fgetc()fputc()fgets()fputs()fscanf()fprintf()fread()fwrite()等函数的使用方法,并通过示例代码展示了这些函数的实际应用。

在实际编程中,选择合适的文件读写函数可以大大提高程序的效率和可读性。希望本文能帮助读者更好地理解和掌握C语言中的文件操作。

推荐阅读:
  1. C语言中怎么读写文件
  2. JavaScript中setTimeout函数的执行顺序是什么

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

c语言

上一篇:vue可视化大屏怎么实现无线滚动列表飞入效果

下一篇:SpringBoot中shiro过滤器重写与配置的方法

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》