-1

我想知道是否有人可以帮助我编写代码(C++)?这是不起作用的功能。当我运行它时,Windows 会弹出并说“该程序已停止工作”。这是不会运行的代码(它有点长,但该​​程序是专有的,我感谢任何帮助):

void ClassName::loadGrades(){
    string temp;
    int count=0;

    ifstream labErnIn("labGradesErn.txt");
    if(labErnIn.is_open()){
        count=0;
        while(labErnIn.good()){
            getline(labErnIn, temp);
            float tempF = ::atof(temp.c_str());
            labGradesErn[count] = tempF;
            if(labGradesErn[count]==0 && count==0) labGradesErn[count]=-1;
            count++;
        }
        labGradesErn[count-1]=-1;
        labErnIn.close();
    }

    else{
        cout << "Unable to open file labGradesErn.txt" << endl;
    }
    // I repeat this for three other sections, same code, different var names.
    // From 'ifstream...' to 'Unable to open file'
}

所有未在此函数中声明的变量都在别处声明。

谢谢,我真的很感激任何和所有的帮助!

4

1 回答 1

1

如果labGradesErn是固定数组,您迟早会冒着数组溢出的风险。如果是 a std::vector,则应该使用push_back()追加元素,因为增加索引不会增加向量。

另一点是您的 while 循环。你不测试是否getline成功,你应该循环getline而不是good

while (getline(labErnIn, temp)) {
...
}
于 2013-02-11T02:06:17.587 回答