你这数据最好是由程序代码格式化地生成,然后你才能用相同的数据格式去读。
你要是用手动生成的话,以这样的方式去赋值不出错才怪。
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互转的函数就可以实现。
不明确 A.text是什么样子?
01 张成成 男 501 87732111
02 张成 男 501 87732111
还是
01 张成成 男 501 87732111
--------------------------------------------------------------------------------------------
02 张成 男 501 87732111