📜  C中的fprintf()和fscanf()(1)

📅  最后修改于: 2023-12-03 14:40:25.185000             🧑  作者: Mango

C中的fprintf()和fscanf()

在C语言中,我们经常需要将数据从内存中输出到文件中,或从文件中读取数据存储到内存中。这时候就需要用到C标准库提供的fprintf()和fscanf()函数。

fprintf()

fprintf()函数用于向文件中输出格式化的数据。其语法如下:

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

其中,stream是指向文件的指针,format是输出格式字符串,后面的...表示可变参数列表,表示要输出的数据。

例如,我们想将一个整数num输出到文件中,可以这样写:

#include <stdio.h>

int main()
{
    int num = 123;
    FILE *fp = fopen("data.txt", "w");
    if(fp == NULL)
    {
        printf("无法打开文件\n");
        return 1;
    }
    fprintf(fp, "num = %d\n", num);
    fclose(fp);
    return 0;
}

在上面的例子中,我们将文件名为data.txt的文件以写入的方式打开,然后将num输出到文件中。最后记得关闭文件。

fscanf()

fscanf()函数用于从文件中读取格式化的数据。其语法如下:

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

其中,stream是指向文件的指针,format是输入格式字符串,后面的...表示可变参数列表,表示要读取的数据。

例如,我们从文件中读取一个整数num,可以这样写:

#include <stdio.h>

int main()
{
    int num;
    FILE *fp = fopen("data.txt", "r");
    if(fp == NULL)
    {
        printf("无法打开文件\n");
        return 1;
    }
    fscanf(fp, "num = %d\n", &num);
    printf("num = %d\n", num);
    fclose(fp);
    return 0;
}

在上面的例子中,我们将文件名为data.txt的文件以读取的方式打开,然后从文件中读取num的值。最后记得关闭文件,并输出读取到的num。

需要注意的是,读取格式字符串中的占位符要与要读取的数据类型匹配,否则程序会出现错误。

总结

C中的fprintf()和fscanf()函数常用于文件输入输出,可以方便地将数据存储到文件中或从文件中读取数据。在使用时,需要注意格式字符串中的占位符要与要输入或输出的数据类型匹配,以避免程序错误。