断言.dat读取失败

时间:2014-09-14 16:16:12

标签: c++ ifstream ofstream

以下是我打电话的功能:

bool getPlayer(int& jerseyNumber, string& firstName, string& lastName, int& minutesPlayed){
    infile >> jerseyNumber;
    assert(!infile.fail());
    infile >> firstName;
    assert(!infile.fail());
    infile >> lastName;
    assert(!infile.fail());
    infile >> minutesPlayed;
    assert(!infile.fail());

    //set values
    return true;
}

void getShooting(int& fga, int& fgm, int& tpa, int& tpm, int& fta, int& ftm){
    infile >> fga;
    assert(!infile.fail()); //check if it failed, and abort.
    infile >> fgm;
    assert(!infile.fail());
    infile >> tpa;
    assert(!infile.fail());
    infile >> tpm;
    assert(!infile.fail());
    infile >> fta;
    assert(!infile.fail());
    infile >> ftm;
    assert(!infile.fail());
    return;
}

我的主要功能是以这种方式调用它们:

infile.open("lab3.dat");
fout.open("output.txt");
for (int i = 0; i < SIZE; i++){
    getPlayer(jersNums[i], firstNames[i], lastNames[i], totalMinutes[i]);
    getShooting(fgas[i], fgms[i], tpas[i], tpms[i], ftas[i], ftms[i]);
}
infile.close();fout.close();

getShooting函数断言在infile >> fta;行之后立即失败。 我不知道为什么。 lab3.dat的结构如下(每个数字是不同的数据点):

99 George Mikan 379 179 72 0 0 81 62 58 86 0 0 19 0 42

这不一定是我想要的方式,但这是计算机科学任务,所以我必须这样做。这个断言失败有什么明显的原因吗?

0 个答案:

没有答案