溫馨提示×

fflush與其他I/O函數的協同使用

小樊
91
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
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女