如何用C++从txt中读取数据到结构体?

例如,A.txt有如下数据:01张成成男50187732111------------------------------------------------------... 例如,
A.txt 有如下数据:
01 张成成 男 501 87732111
--------------------------------------------------------------------------------------------
对于A.txt,
我用的结构体student里面的数据类型是:
int string string int int int int
代码如下:
student std;
ifstream fin("A.txt");
fin>>stu.sno >>stu.name >>stu.sex >>stu.room >>stu.tel;
我目前只会这一种,
但如果真这样, 在第二个数据到第三个数据的地方就会赋错,
我知道getline是以空格为分隔符,
但如果用上getline, 我就不知道要怎么办了...
--------------------------------------------------------------------------------------------
求助, 最好是能有代码...
展开
 我来答
一超独大
推荐于2016-11-12 · TA获得超过819个赞
知道小有建树答主
回答量:452
采纳率:100%
帮助的人:261万
展开全部
你这数据最好是由程序代码格式化地生成,然后你才能用相同的数据格式去读。
你要是用手动生成的话,以这样的方式去赋值不出错才怪。
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互转的函数就可以实现。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
危献e3
2011-06-17 · TA获得超过2053个赞
知道大有可为答主
回答量:2738
采纳率:0%
帮助的人:1945万
展开全部
不明确 A.text是什么样子?
01 张成成 男 501 87732111
02 张成 男 501 87732111
还是
01 张成成 男 501 87732111
--------------------------------------------------------------------------------------------
02 张成 男 501 87732111
追问
没有“------------”
那个是我自己加的。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式