这个代码只能检查第一个数据是因为在while循环中,程序只会读入一次结构体字符块到b,所以只能检查第一个数据。如果想要批量检查多个数据,需要在while循环中添加读入结构体字符块的代码,例如在if(Ifeof(fp))语句之前添加fread(&b,sizeof(struct Users),1, fp);这样就可以循环读入所有的结构体数据进行检查了。