我想知道是否有人可以帮助我使用我的代码(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'
}
此函数中未声明的所有变量都在其他地方声明。
谢谢,非常感谢任何帮助!
答案 0 :(得分:1)
如果labGradesErn
是固定数组,则迟早会冒数组溢出的风险。如果是std::vector
,则应使用push_back()
追加元素,因为增加索引不会增加向量。
另一点是你的while循环。你不测试getline
是否成功,你应该在getline
而不是good
上循环
while (getline(labErnIn, temp)) {
...
}