C 语言fscanf读取文件

使用fscanf读取文本文件

index type name
0 0x01 ABC
1 0x02 DEF

按理说读取读16进制的type 应该使用char type读 但是type如果是char类型读取到的index全都是0
用int类型的type就能正确读取文本

int index;
//char type;
int type;
char name[20] = {0};
FILE* fp;
    while(fscanf(fp, "%d 0x%x %s", &index, &type, name) != EOF)
    {
        g[index].type = board_type_info;
        strcpy(g[index].name, name);
    }

%x接收的类型是unsigned int 类型 你用char的话会丢数据