1

イライラする問題があります。次のエラーが表示されます。

'char*' をタイプ FILE*'(別名 '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;
    }
4

1 に答える 1

2

あなたの宣言によると、my_file_name は FILE へのポインターではなく、char の文字列です。関数 fscanf には FILE へのポインターが必要です。したがって、そのようなエラーが発生しました。

文字列にしたい場合は、sscanf代わりに使用fscanfしてデータを抽出します。それ以外の場合は、FILE ポインターを宣言し、ファイルを開き、そこから読み取ります。

于 2013-10-15T23:06:45.770 に答える