我必须从文件中读取四个数据元素,即学生姓名,父亲姓名,掷骰号和年龄。 我使用inps作为输入文件流和输出作为输出数据流。我的输入文件中有10个数据集。但是这个程序只在输出文件中写入第一个数据集而忽略了其余的9个数据集。请对这个问题提出一些建议。
string line;
int data;
while (inps) {
getline(inps,line); //read from file and put in line
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<<"Father’s name: "
<<s1.getFatherName()<<endl;
outs<<"Roll number: "<<s1.getRollNo()<<endl<<"Age: "
<<s1.getAge()<<endl<<endl;
outs<<"============================================================="
<<endl<<endl;
}
inps.close();
//write in output file
outs.close();
答案 0 :(得分:1)
不要不断重新打开相同的游戏:
答案 1 :(得分:1)
这个程序中的另一个问题是,当进入循环时,它会检查inps == 0或不是,并且仍然是未初始化的! 所以,而不是while(inps),我们必须写(getline(inps,line); line!=“”; getline(inps,line))
然后删除第一行代码,这一切都很好用。