J'ai un code pour comparer des ensembles de questions auxquelles différentes personnes répondent, l'une définit les entrées de l'utilisateur, l'autre provient d'un fichier .txt. Quand je l'exécute, il me donne un indice de vecteur d'erreur d'assertion hors de portée et je ne peux pas trouver d'où il vient. Voici le code:Vector Indice hors erreur erreur
void compare()
{
const int qnum = 11;
string filename, temp;
string search[10] = {"1","2","3","4","5","6","7","8","9","0"};
int answers[qnum], i, j, k, q= 0, numtemp = 0, pplNum;
ifstream infile;
vector <string> people;
vector <int> pplans;
vector <int> pplscore;
cout << "Please enter the name of the file you would like to enter: ";
cin >> filename;
string infilename= filename;
infile.open(infilename.c_str());
//Temporary test part of the program until we add the GUI just copy another person's answer or put similar ones
//for testing purposes
infile >> pplNum;
//allows for all names and scores to fit in each vector
for(i = 0; i < pplNum; i++)
{
people.push_back("");
people.push_back("");
pplscore.push_back(0);
}
//takes the person's name
for(j = 0; !infile.eof(); j+ 2)
{
infile >> people[j];
infile >> people[j+1];
}
for(i = 0; i < pplNum; i++)
{
//sets the numbers for the individual in question
for(k = 0; k < qnum; k++)
{
infile >> pplans[k];
if(answers[k] == pplans[k] && k < 10)
numtemp++;
else if (k == 10 && answers[k] == pplans[k])
if(answers[answers[k]] == pplans[pplans[k]])
numtemp++;
}
pplscore.push_back(0);
pplscore[i] = numtemp;
}
}
Je crois que vous vouliez écrire '+ = 2' ici:' for (j = 0;! Infile.eof() ; j + 2) ' –
Que contient le fichier txt? – Beta
exécutez votre programme avec un débogueur (par exemple 'gdb' si vous utilisez g ++), alors vous devriez voir à quel point dans le programme l'assertion apparaît – codeling