C++:用for循环写入txt文件时(即向流插入数据),如何输入一个结束标志跳出此循环?
代码如下ofstreamxuejifile;xuejifile.open("XUEJI.txt",ios::app);if(!xuejifile)//调用重载算符函数测试...
代码如下
ofstream xuejifile;
xuejifile.open("XUEJI.txt",ios::app);
if(!xuejifile) //调用重载算符函数测试流
{
cerr<<"打开文件错误!"<<endl;
abort(); //结束
}
for(i=0;getchar()=='E';i++)
{
xuejifile<<"学号"<<stu[i].number<<"\t";
xuejifile<<"姓名"<<stu[i].name<<"\t";
xuejifile<<"年级"<<stu[i].grade<<"\t";
xuejifile<<"班级"<<stu[i].Class<<"\t";
xuejifile<<"入学时间(格式:年份月份日期)"<<stu[i].name<<"\t";
xuejifile<<"学费金额(只输入数字)"<<stu[i].fee<<"\t";
xuejifile<<"离校时间(格式:年份月份日期)"<<stu[i].offtime<<"\t";
xuejifile<<"离校原因"<<stu[i].reason<<"\t\n";
i++;
}
xuejifile.close();
我试过好多中方案,比如写成
while(cin>>stu[i].number>>stu[i]>>name……>>stu[i].reason)
{
xuejifile<<"学号"<<stu[i].number<<"\t";
xuejifile<<"姓名"<<stu[i].name<<"\t";
xuejifile<<"年级"<<stu[i].grade<<"\t";
xuejifile<<"班级"<<stu[i].Class<<"\t";
xuejifile<<"入学时间(格式:年份月份日期)"<<stu[i].name<<"\t";
xuejifile<<"学费金额(只输入数字)"<<stu[i].fee<<"\t";
xuejifile<<"离校时间(格式:年份月份日期)"<<stu[i].offtime<<"\t";
xuejifile<<"离校原因"<<stu[i].reason<<"\t\n";
i++;
} 按Ctrl-z结束
但是这样也不行。我想知道为什么平时用循环都可以采用类似方法跳出来,但是用循环向流中插入数据(既写入文件)就不行呢???求大神帮忙!! 展开
ofstream xuejifile;
xuejifile.open("XUEJI.txt",ios::app);
if(!xuejifile) //调用重载算符函数测试流
{
cerr<<"打开文件错误!"<<endl;
abort(); //结束
}
for(i=0;getchar()=='E';i++)
{
xuejifile<<"学号"<<stu[i].number<<"\t";
xuejifile<<"姓名"<<stu[i].name<<"\t";
xuejifile<<"年级"<<stu[i].grade<<"\t";
xuejifile<<"班级"<<stu[i].Class<<"\t";
xuejifile<<"入学时间(格式:年份月份日期)"<<stu[i].name<<"\t";
xuejifile<<"学费金额(只输入数字)"<<stu[i].fee<<"\t";
xuejifile<<"离校时间(格式:年份月份日期)"<<stu[i].offtime<<"\t";
xuejifile<<"离校原因"<<stu[i].reason<<"\t\n";
i++;
}
xuejifile.close();
我试过好多中方案,比如写成
while(cin>>stu[i].number>>stu[i]>>name……>>stu[i].reason)
{
xuejifile<<"学号"<<stu[i].number<<"\t";
xuejifile<<"姓名"<<stu[i].name<<"\t";
xuejifile<<"年级"<<stu[i].grade<<"\t";
xuejifile<<"班级"<<stu[i].Class<<"\t";
xuejifile<<"入学时间(格式:年份月份日期)"<<stu[i].name<<"\t";
xuejifile<<"学费金额(只输入数字)"<<stu[i].fee<<"\t";
xuejifile<<"离校时间(格式:年份月份日期)"<<stu[i].offtime<<"\t";
xuejifile<<"离校原因"<<stu[i].reason<<"\t\n";
i++;
} 按Ctrl-z结束
但是这样也不行。我想知道为什么平时用循环都可以采用类似方法跳出来,但是用循环向流中插入数据(既写入文件)就不行呢???求大神帮忙!! 展开
3个回答
展开全部
首先,如果你要写入的数据已经存在了,那么你的这个循环控制应该是通过变量i来控制吧,因为你的这个stu到底有多少个呢?总不能超出实际数量;
其次,如果你想一边数据数据一边来写入文件的话,那么你应该在for循环或者while循环体内输入,然后你可以根据输入的内容来跳出循环。
其次,如果你想一边数据数据一边来写入文件的话,那么你应该在for循环或者while循环体内输入,然后你可以根据输入的内容来跳出循环。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你搜一下sizeof函数的用法……
追问
???这个……和我的问题有联系咩?肿么用?
追答
额,你这手动退出,也不能这么写啊,这没人管,不就相当于死循环了?要命的……
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询