请问为什么读出来的数据会是1呢


#include <stdio.h>
#include <stdlib.h>
int main()
{
    int data=0;
    FILE *fp=fopen("D:\\software\\QT5.9.0\\MyProject\\data\\data.txt","rw+");
    if(fp == NULL)
        printf("File Open Failed !\n");
    else
        printf("File Open Success !\n");
    fseek(fp,0,0);
//    while ((data!=EOF)){
        data=fscanf(fp,"%x",&data);
        printf("%u,",data);
        data=fscanf(fp,"%x",&data);
        printf("%u",data);
//        fseek(fp,-2,1);
//        fprintf(fp,"%u,",data);
//    }
    fclose(fp);
    return 0;
}

想把文件中的十六进制数据读出来转化为无符号数再写回去,并以逗号间隔,但发现从文件中读出来的数据有问题,始终为1

img

img

fscanf 的返回值是 读取的数据个数, data读到了,但是又被赋值为了 1,%x 只能读取一个数
把 data = 去掉