Witam, mam problem z jedną funkcją i za nic nie wiem co jest nie tak. Otóż mam taką funkcję:
void porownaj_odp()
{
int wszystkie_odpowiedzi[21];
ifstream plik("odpowiedzi");
string odpowiedzi;
int j = 0;
while(!plik.eof())
{
getline(plik, odpowiedzi);
wszystkie_odpowiedzi[j] = atoi(odpowiedzi.c_str());
cout << "po atoi wszystkie_odpowiedzi[j] = " << wszystkie_odpowiedzi[j] << endl;
}
plik.close();
int wynik=0;
for (int i = 0; i <20; i++) {
cout << i << " = " << wszystkie_odpowiedzi[i] << endl;
}
cout <<endl;
for (int i=0;i<10;i++)
{
int z = tablica[0][i];
printf("temp2=%d \n", wszystkie_odpowiedzi[tablica[0][i]]);
if (tablica[1][i]==wszystkie_odpowiedzi[z])
{
cout << tablica[1][i] << " == " << wszystkie_odpowiedzi[z];
wynik=wynik+1;
cout<<"wynik to "<<wynik << " z=" << z << endl;
cout << "i=" << i << endl;
}
}
}
Problem jest z tablicą **wszystkie_odpowiedz[] **, otóż po odczytaniu odpowiedzi w linii wszystkie_odpowiedzi[j] = atoi(odpowiedzi.c_str()); wszystko wydaje się być ok. cout wyświetla prawidłowe wyniki. Natomiast zaraz po opuszczeniu pętli while linia cout << i << " = " << wszystkie_odpowiedzi << endl; wyświetla mi bzdury i liczby wzięte z kosmosu. W czym jest problem, co robię nie tak i jak to poprawić?