📜  C中的fprintf()(1)

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

C中的fprintf()

简介

C语言中的fprintf()函数可以将数据按指定格式输出到指定文件中。它的原型如下:

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

其中第一个参数是输出目标文件的文件指针,第二个参数是格式化输出的字符串格式,后面的参数是要输出的变量名或者常量值。fprintf()函数是C语言标准库中的一个函数,使用时需要包含stdio.h头文件。

使用方法

fprintf()函数用法和printf()函数基本相同,只不过将输出的内容写入指定文件中。下面是一个简单的例子,将数组内容输出到一个文件中:

#include <stdio.h>

int main() {
    FILE *fp;
    fp = fopen("data.txt", "w");
    int arr[] = {1, 2, 3, 4, 5};
    int i;
    for (i=0; i<5; i++) {
        fprintf(fp, "%d ", arr[i]);
    }
    fclose(fp);
    return 0;
}

在上面的例子中,我们先使用fopen()函数打开一个文件,然后将文件指针赋值给fp变量。接下来我们生成了一个简单的数组,并使用fprintf()函数格式化输出数组中的每个元素,用空格隔开。最后我们用fclose()函数关闭文件。

高级用法

除了基本的格式化输出外,fprintf()函数还可以实现更加高级的功能。下面是一些常用的用法:

控制字段宽度和精度

可以使用%字符和数字来指定控制字段的宽度和精度。

fprintf(fp, "%5d\n", i); // 控制输出宽度为5,不足补齐
fprintf(fp, "%.2f\n", f); // 控制输出精度为小数点后2位
按指定进制输出

可以使用%字符和字母xX来指定输出的进制方式。例如:

fprintf(fp, "%x\n", i); // 输出16进制
fprintf(fp, "%o\n", i); // 输出8进制
输出结构体等复杂数据类型

可以使用.运算符来输出结构体等复杂数据类型。例如:

struct person {
    char name[20];
    int age;
    float height;
};
struct person p = {"Jack", 30, 1.8};
fprintf(fp, "%s, %d, %.2f\n", p.name, p.age, p.height);
输出到标准错误流

可以使用fprintf(stderr, ...)函数来将输出内容输出到标准错误流上。

总结

fprintf()函数是一个非常强大的输出函数,可以将数据以各种不同的方式输出到指定文件中,我们可以通过控制具体的输出格式实现更加复杂的输出需求。但是需要注意,输出文件的打开和关闭是我们必须要进行的操作,否则会造成文件操作异常。