楼上说的不太对 读出来的数据存进stu里面就会按顺序给类的三个变量赋值 但是你的类中的三个变量没有内存对齐(通过打印这个类所占的空间就能看出),建议你给他们重新拍下顺序,你的乱码很可能是这导致的另外给你提个建议 新定义的变量尽量赋上初值,否者出问题了很难调试
file.read((char*)&stu,sizeof stu);只是读了一定长度的字符串,不可能帮你自动转换为student类的格式的撒。你必须自己读字符,自己转换为student类的数据。