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 的指针。而函数 fscanf 需要一个指向 FILE 的指针。因此,您遇到了这种错误。

如果您希望它是一个字符串,请使用sscanf而不是fscanf提取数据。否则,声明一个 FILE 指针,打开一个文件并从中读取。

于 2013-10-15T23:06:45.770 回答