Хм, мой цикл пропускает все остальные строки, я сравниваю эти 5 15 16 17 … с этим 17 37 5 … и пытаюсь найти совпадения чисел. И я не уверен, почему он пропускает линию.
for(int j=0;j<fileMaxLines;j++){
for(int k=0;k<fileMaxLines;k++){
//cout <<" " <<EInfo[j].idSE <<endl;
if(EInfo[j].idSE == ETran[k].idIV){
temphours = ETran[k].numbOfHoursIV;
cout <<EInfo[j].idSE << " -->" << ETran[k].idIV;
cout << "right"<<endl;
k=fileMaxLines;
break;
}
else{
//cout <<EInfo[j].idSE << " -->" << ETran[k].idIV << endl;
}
cout <<EInfo[j].idSE << " -->" << ETran[k].idIV << endl;
}
EInfo[j].numbOfHoursSE = temphours;
j++;
}
Вы увеличиваете j
дважды:
for(int j=0;j<fileMaxLines;j++){ // here
for(int k=0;k<fileMaxLines;k++){
//cout <<" " <<EInfo[j].idSE <<endl;
if(EInfo[j].idSE == ETran[k].idIV){
temphours = ETran[k].numbOfHoursIV;
cout <<EInfo[j].idSE << " -->" << ETran[k].idIV;
cout << "right"<<endl;
k=fileMaxLines;
break;
}
else{
//cout <<EInfo[j].idSE << " -->" << ETran[k].idIV << endl;
}
cout <<EInfo[j].idSE << " -->" << ETran[k].idIV << endl;
}
EInfo[j].numbOfHoursSE = temphours;
j++; // and here
}
Других решений пока нет …