Witam ponownie, mam kolejny problem. Funkcja poniżej ma porównywać nick gracza z tym podanym przez użytkownika, i w razie powodzenia przekopiować wartości z pliku do obiektu gr. Problem polega na tym, że obecnie działa w sposób przypadkowy, np. wybierając trzeciego gracza zaczyna porównywać go z pierwszym, zwraca prawdę i zaczyna wykonywać instrukcje w oparciu o gracza pierwszego a nie trzeciego. W czym tkwi problem, czy to kwestia niepoprawnego użycia strcmp, czy może problem z ciągami znaków?
void szukajgracza(gracz gr){ //PRZEBUDOWA NA STRINGA?
gracz *head=NULL, *wsk=NULL, tempbase;
char searchnick[30];
cout << "Podaj swoj nick\n";
cin >> searchnick;
fflush(stdin);
ifstream list("gracze.txt");
list>>tempbase;
while(list){
if(head==NULL){
head=wsk=new gracz;
*wsk=tempbase;
if((strcmp(searchnick, tempbase.player.nick))!=0){
cout << "Znaleziono gracza w bazie, powodzenia!\n\n";
strcpy_s(gr.player.nick, tempbase.player.nick);
gr.player.gry=tempbase.player.gry;
gr.player.wins=tempbase.player.wins;
break;
}
}
else{
wsk->nast=new gracz;
wsk=wsk->nast;
*wsk=tempbase;
if((strcmp(searchnick, tempbase.player.nick))!=0){
cout << "Znaleziono gracza w bazie, powodzenia!\n\n";
strcpy_s(gr.player.nick, tempbase.player.nick);
gr.player.gry=tempbase.player.gry;
gr.player.wins=tempbase.player.wins;
break;
}
wsk->nast=NULL;
}
list>>tempbase;
}
}