温馨提示×

fflush与其他I/O函数的协同使用

小樊
83
2024-08-28 21:22:29
栏目: 编程语言

fflush() 是 C 语言中的一个 I/O 函数,用于将缓冲区的内容写入文件或设备

以下是 fflush() 与其他 I/O 函数的协同使用示例:

  1. fprintf()fscanf() 结合使用:
#include<stdio.h>

int main() {
    FILE *file = fopen("test.txt", "w+");
    if (file == NULL) {
        printf("Error opening file\n");
        return 1;
    }

    // 写入数据到缓冲区
    fprintf(file, "Hello, World!\n");

    // 清空缓冲区并将数据写入文件
    fflush(file);

    // 将文件指针移动到文件开头
    rewind(file);

    char buffer[256];
    // 从文件读取数据
    fscanf(file, "%s", buffer);

    printf("Read from file: %s\n", buffer);

    fclose(file);
    return 0;
}
  1. fwrite()fread() 结合使用:
#include<stdio.h>

int main() {
    FILE *file = fopen("test.bin", "wb+");
    if (file == NULL) {
        printf("Error opening file\n");
        return 1;
    }

    int data[] = {1, 2, 3, 4, 5};
    int size = sizeof(data) / sizeof(data[0]);

    // 写入数据到缓冲区
    fwrite(data, sizeof(int), size, file);

    // 清空缓冲区并将数据写入文件
    fflush(file);

    // 将文件指针移动到文件开头
    rewind(file);

    int buffer[size];
    // 从文件读取数据
    fread(buffer, sizeof(int), size, file);

    for (int i = 0; i< size; i++) {
        printf("Read from file: %d\n", buffer[i]);
    }

    fclose(file);
    return 0;
}

在这些示例中,我们首先使用 fprintf()fwrite() 等函数将数据写入缓冲区。然后,我们使用 fflush() 函数将缓冲区的数据写入文件或设备。接下来,我们可以使用 fscanf()fread() 等函数从文件中读取数据。这样,我们可以确保在读取数据之前已经将所有数据写入文件。

0