【发布时间】:2013-08-07 10:06:25
【问题描述】:
此代码从输入文件中接受学生姓名、父亲姓名、卷号和年龄,并将其以可呈现的方式放在输出文件中。
在这段代码中,当输入文件的内容是:
Vicky
Mohan
20094567
22 Ricky
Rahul
20091234
21
效果很好。
但如果他们是:
Vicky
Mohan
20094567
22
Ricky
Rahul
20091234
21
进入无限循环。 有什么建议吗??
ifstream inps("input", ios::in);
outs.open("output",ios::app);
string line;
int data,count=1;
for(getline(inps,line);line!="";getline(inps,line))
{
count++;
s1.setName(line);
getline(inps,line);
s1.setFatherName(line);
inps >> data;
s1.setRollNo(data);
inps >> data;
s1.setAge(data);
outs.open("output",ios::app);
outs << "Student name: " << s1.getName() << endl;
outs << "Father’s name: " << s1.getFatherName() << endl;
outs << "Roll number: " << s1.getRollNo() << endl;
outs << "Age: " << s1.getAge() << endl << endl;
}
inps.close();
outs.close();
【问题讨论】:
-
在这种情况下,while 循环会更有意义。
-
我试过了,但同样的问题
-
你不要缩进你的代码
-
idon'tunderstandthecdoeformatting
-
不要在循环中再次调用 getline!制作一个字符串向量并推回每一行。然后,您可以在闲暇时索引该向量。
标签: c++ file-io iostream infinite-loop