慕仙森
你这数据最好是由程序代码格式化地生成,然后你才能用相同的数据格式去读。你要是用手动生成的话,以这样的方式去赋值不出错才怪。string的长度你知道?你可以定义如下的数据格式typedef struct _PROPERTY{char szName[32];char szSex[4];} PROPERTY;typedef struct _STUDENT{int index;PROPERTY pro;unsigned int RoomNum;char szStuNum[16];} STUDENT;然后你用这个结构去产生A.txt文件。再用这个结构读取就不会出错。一次读取sizeof(STUDENT)长度的数据。如果你的数据是手工生成的,那么你只能通过判断是不是空格来进行赋值。getline之后,取得一行,那么就判断哪个字符不是空格,然后按照设置的规则进行手动赋值就可以了。这个也不难实现。用两个指针加上几个char和int互转的函数就可以实现。