如何从文件中读取多组数据

时间:2013-08-06 05:06:30

标签: c++

我必须从文件中读取四个数据元素,即学生姓名,父亲姓名,掷骰号和年龄。 我使用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();

2 个答案:

答案 0 :(得分:1)

不要不断重新打开相同的游戏:

  1. 根本就是傻乎乎的
  2. 当然不是没有正确关闭它

答案 1 :(得分:1)

这个程序中的另一个问题是,当进入循环时,它会检查inps == 0或不是,并且仍然是未初始化的! 所以,而不是while(inps),我们必须写(getline(inps,line); line!=“”; getline(inps,line))

然后删除第一行代码,这一切都很好用。