Dlaczego wyświetla mi się ciągle, że nazwisko jest błędnie podane ?

0
     {
      system("cls");
       cout<<"Podaj nazwisko szukanej osoby:"<<endl; 
       cin>>szukaj;
       ifstream Plik;
       Plik.open("Spis.txt",ios::in|ios::out);
       if(Plik.good()==true);
       {    Plik.seekg(0, ios::end);
                            dlugosc = Plik.tellg();
                            miejsce = dlugosc/sizeof(osoba);
                            Plik.seekg(0, ios::beg);
           for(a=0;a<miejsce;a++)
           {Plik.read((char*)&osoba, sizeof(osoba));
           if(!strcmp(osoba.nazwisko,szukaj))
           { osoba.wyswietl();
           }
           Plik.close();
           
                                  
           }                 
                            
       }
       if(a==miejsce);
       {cout<<"Błednie podane nazwisko.";
       }
       Sleep(500);
       exit(0);
       }
      break;

poprawienie znacznika <code class="cpp"> - @furious programming

0

Ten program ma więcej błędnych niż poprawnych instrukcji... popełniasz błędy nawet przy wypisywaniu na ekran/wczytywaniu z konsoli.

0

Pewnie program przechodzi przez pętlę, gdzie iterujesz miejsce razy zmienną a, więc potem obie zmienne są sobie równe i owo sprawdzenie jest prawdą, w którym wyświetlasz, że podano błędne nazwisko. Nie widzę deklaracji owych zmiennych, więc może zerujesz najpierw te zmienne przed tym kodem, który tu pokazałeś i to sprawdzenie dalej jest prawdziwe.

1 użytkowników online, w tym zalogowanych: 0, gości: 1