Fscanf in c意思

fscanf 是 C 語言中的一個函式,它是 scanf 函式的檔案版本,用於從檔案中讀取數據。它的原型如下:

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

其中:

fscanf 函式按照 format 中的格式說明符從 stream 指向的檔案中讀取數據,並將數據存放到 ... 指定的變數中。每個格式說明符對應一個變數,fscanf 會嘗試將檔案中的數據按照指定的格式轉換並存放到相應的變數中。

例如,以下代碼使用 fscanf 從檔案中讀取一個整數和一個浮點數:

#include <stdio.h>

int main() {
    FILE *file = fopen("data.txt", "r"); // 打開數據檔案
    if (file == NULL) {
        perror("檔案打開錯誤");
        return 1;
    }

    int number;
    float value;

    // 使用fscanf讀取數據
    if (fscanf(file, "%d %f", &number, &value) != 2) {
        fprintf(stderr, "讀取數據錯誤\n");
        return 1;
    }

    printf("number = %d, value = %f\n", number, value);

    fclose(file); // 關閉檔案
    return 0;
}

在這個例子中,fscanfformat 字元串是 "%d %f",它告訴 fscanf 讀取一個整數(用 %d 表示),然後是一個浮點數(用 %f 表示)。... 部分是兩個變數 &number&value,它們分別對應于格式字元串中的整數和浮點數格式說明符。

fscanf 函式的返回值是成功讀取的輸入項的數目,如果遇到錯誤或者到達檔案末尾(EOF),則返回一個負值。

在使用 fscanf 時,需要注意檔案格式和 format 字元串的匹配,以及可能出現的錯誤情況,例如檔案不存在、沒有讀取到任何數據或者格式錯誤等。通常需要檢查 fscanf 的返回值,並處理可能的錯誤情況。