为什么输入的正确的用户名一直显示错误,且如果把注释部分添上是输出一堆乱码?

img

img

(1)检查你的文件读取是否正确,把读取的数据打印出来看看,看看读取的内容是否正确(注意是否有多余的回车符)。
代码修改如下:

while(!feof(fp))
{
    fscanf(fp,"%s%s",a[i].ID,a[i].mima);//这种写法要求id和密码之间用空格隔开,如果读取有错误,这里改成 fscanf(fp,"%s%s\n",a[i].ID,a[i].mima);试试
    //添加这一句,显示所有读取的内容
    printf("%s %s\n",a[i].ID,a[i].mima);
    i++;
}

(2)第22、23行没用,而且,会改变i的值,把22和23行删掉。
(3)第35行的whie( strcmp() !=0 )改成while(1),不该也行