簡體   English   中英

不兼容的指針類型,將'char *'傳遞給'FILE *'類型的參數(又名'struct__sFILE *')

[英]incompatible pointer types passing 'char*' to parameter of type 'FILE*'(aka 'struct__sFILE*')

我有一個令人沮喪的問題。 我收到以下錯誤:

不兼容的指針類型,將'char *'傳遞給FILE *'(aka'struct__sFILE *')類型的參數。

有人知道我將如何解決此問題?

void load_myFile(char my_file_name[]) {
    if(my_file_name != NULL) {
        int op_code, L_code, M_code, i = 0;
        while(my_file_name != NULL) {
            fscanf(my_file_name, "%d", &op_code);

            if(i > MAX_CODE_LENGTH) {
                printf("Program is longer than MAX_CODE_LENGTH\n");
                exit(ERROR_PROG_TOO_LONG);
            }
            fscanf(my_file_name, "%d", &L_code);
            fscanf(my_file_name, "%d", &M_code);

            code[i].op = op_code;
            code[i].l = L_code;
            code[i].m = M_code;
            i++;
        }
        code_size = i;
    }

根據您的聲明,my_file_name是一個字符串,不是指向FILE的指針。 而函數fscanf需要一個指向FILE的指針。 因此,您會遇到這種錯誤。

如果希望它是字符串,請使用sscanf而不是fscanf來提取數據。 否則,聲明一個FILE指針,打開一個文件並從中讀取。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM