关于C++ 中从文件读取结构体的问题。就是不知道文件里的结构体类型的数据有多少。

#include<iostream>#include<fstream>usingnamespacestd;structclerk{intnum;charname[20];... #include <iostream>
#include <fstream>
using namespace std;
struct clerk
{
int num;
char name[20];
int age;
int wage;
};

int main()
{
clerk b[10];
ifstream infile("f3.dat",ios::in);
//for(int i=0;!(infile<<EOF);i++)
//{

int i=0;
while(1){

infile>>b[i].num;
if(b[i].num==EOF)
break;
infile>>b[i].name;
infile>>b[i].age;
infile>>b[i].wage;
cout<<b[i].num<<" ";
cout<<b[i].name<<" ";
cout<<b[i].age<<" ";
cout<<b[i].wage<<endl;
i++;

}
就是兄弟想通过循环读取结构体,但不知道如何使用EOF终止循环(因为不知道有多少数据),请指教
展开
 我来答
mrdone
2011-10-25 · TA获得超过1143个赞
知道小有建树答主
回答量:2346
采纳率:100%
帮助的人:540万
展开全部
while(1){
--------------------
改成:while(infile.eof())
追问
兄弟你搞错了,应该改为 while(!infile.eof()),能不能给小弟解释一下,加分!
匿名用户
2011-10-25
展开全部
while(1)
改为
while(infile)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liucong07170
2011-10-25 · TA获得超过186个赞
知道小有建树答主
回答量:456
采纳率:0%
帮助的人:254万
展开全部
或者直接改成
while ( infile >> b[i].num)
下边再执行你想要的操作
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fannyandfly
2011-10-26
知道答主
回答量:40
采纳率:0%
帮助的人:14.9万
展开全部
你是想当读取数据完毕后就EOF吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式