Dlaczego program nie wypisuje danych użytkownika tylko się zawiesza gdy podam nazwisko ?

0
 

 #include <cstdlib>
#include <iostream>
#include <fstream>
#include<string>
#include <windows.h>
#include<conio.h>
using namespace std; 
class spis
{
      public:
      
        char imie[25];
        char nazwisko[25]; 
        string numer;
        string email; 
        string kom;
        string adr;
        string dan;
        spis(){};
        ~spis(){};
        void dodaj();     
        void wyswietl();
         
       
       
};
 
 
void spis::dodaj()
{    
    cout << "Podaj imi\251: ";
    cin >> imie;
    cout << "Podaj nazwisko: ";
    cin >> nazwisko;
    cout << "Podaj numer telefonu stacjnarnego: ";
    cin >> numer;
    cout<<"Podaj numer telefonu kom\242rkowego:";
    cin>>kom;
    cout<<"Podaj adres zamieszkania:";
    cin>>adr;
    cin>>dan;
}; 
void spis::wyswietl()
{
 
system("cls");
cout<<"Wyszukana osoba to:\n"<<imie<<""<<nazwisko<<"\n";
cout<<"Numer telefonu(stacjonarnego) to:\n"<<numer<<"\n";
cout<<"Adres email to:\n"<<email<<"\n";
cout<<"Numer telefonu(kom\242rkowego) to:\n"<<kom<<"\n";
cout<<"Adres zamieszkania to:\n"<<adr<<"\n";
 
};
 
int main(int argc, char *argv[])
{
int wyb;
spis osoba ;
int a,dlugosc, miejsce;
char szukaj[20];
  
{ poczatek:
cout<<("Ksi\245\276ka telefoniczna \n\n\n");
cout<<("Menu:\n\n");
cout<<"1) Wyszukaj osob\251 po nazwisku.\n\n";
cout<<"2) Wprowadz nowe dane do spisu.\n\n";
cout<<"3) Wyjd\253.\n\n";
char wybierz;
cout<<"Wybierz opcj\251:";
cout<<endl;
wybierz=getch();
  
switch(wybierz) 
 
{case '1': 
     {
      system("cls");
       cout<<"Podaj nazwisko szukanej osoby:"<<endl; 
       cin>>szukaj;
       fstream 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;
0

program jest napisany dosyć brzydko, więc ciężko dojść co ci działa a co nie, weź wytnij z niego, to co ci nie działa i sprawdź, jeśli dalej nie będzie działało, przedstaw, bo tak zapisane, to kosztowałoby zbyt dużo czasu na analizowanie całości.

2

Hmm, jak dla mnie to to Plik.read((char*)&osoba, sizeof(osoba)); nie działa tak jak byś chciał żeby działało.

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