我必须编写一个程序来从文件中读取学生的信息,并且我制作了两个 vector 来保留所有信息。但是然后我需要总结所有学生的缺席情况,因此我需要将它们转换为整数,但是当我尝试运行程序时,当到达atoi部分时立即崩溃。
while(!read.eof()) {
if(i==4){
i=0;
}
read>>b;
if(i==0){ names.push_back(b); }
if(i==1){ last_name.push_back(b); }
if(i==2){ absences.push_back(b); }
if(i==3){ unatoned.push_back(b); }
i++;
}
int a = atoi(absences[0].c_str());
最佳答案
如果absences
保持为空,则absences[0]
的行为未定义。
当absences.at(0)
为空时使用absences
会强制编译器抛出异常,因此更易于使用。
无论哪种方式,对于缺席人数,只需使用
auto a = absences.size();