Dlaczego funkcja w case1 nie działa ?

0

<code = c++>
#include <cstdlib>
#include <iostream>
#include <list>
#include <conio.h>
#include <windows.h>
#include <fstream>
using namespace std;
list<string>lista;
//int wybor;
class osoba
{ public:
string imie ;
string nazwisko;
string miasto;
string ulica;
string numer;
//int id;
};

class spis : public osoba
{ public:

  void push()
  {
   //string imie;
   cout<<"Podaj imie:";
   //cin.ignore();
   getline(cin, imie);
   lista.push_front(imie);
   
   //string nazwisko;
   cout<<"Podaj nazwisko:";
   getline(cin, nazwisko);
   lista.push_front(nazwisko);
   
   //string miasto;
   cout<<"Podaj miasto:";
   getline(cin, miasto);
   lista.push_front(miasto);
   
   //string ulica;
   cout<<"Podaj ulice:";
   getline(cin, ulica);
   lista.push_front(ulica);
   
   //string numer;
   cout<<"Podaj numer telefonu (stacjonarnego):";
   getline(cin, numer);
   lista.push_front(numer);
       
  };
  void remove()
  {
   cout<<"Usun z listy osobe.";
   cout<<"Podaj nazwisko:";
   cin>>nazwisko;
   lista.remove(nazwisko);
  };
  void sort()
  {cout<<"Lista sie posortuje.";
  lista.sort();
  };
  /*void zapisz()
  {
  };
  */
  
  /*void wysietl_cala_liste()
  {
   system("cls");
   for(list<string>::iterator i=lista.begin(); i!=lista.end(); i++)
   cout<<*i<<"";
   cout<<endl;    
  };*/

void szukaj() //<- czyli wyszukaj i wyswietl
{
system("cls");
cout<<"Wyszukana osoba to:\n"<<imie<<""<<nazwisko<<"\n";
cout<<"Miasto to:\n"<<miasto<<"\n";
cout<<"Ulica to:\n"<<ulica<<"\n";
cout<<"Numer telefonu(stacjonarnego) to:\n"<<numer<<"\n";
};

};

int main(int argc, char *argv[])
{

string wyb ;
int a;
spis ktos;
spis osob;
char szukaj [20];
int dlugosc, miejsce;
{
poczatek:
cout<<("Ksiazka telefoniczna \n\n\n");
cout<<("Menu:\n\n");
cout<<"1) Wyszukaj osobe po nazwisku.\n\n";
cout<<"2) Wprowadz nowe dane do spisu.\n\n";
cout<<"3) Usun osobe po nazwisku.\n\n";
cout<<"4) Zmien wprowadzone dane w pliku.\n\n";
cout<<"5) Wyjdz.\n\n";
char wybierz;
cout<<"Wybierz opcje:";
cout<<endl;
wybierz=getch();

switch(wybierz)
{
case'1':
{
cout << "Podaj nazwisko szukanej osoby: ";
cin >> szukaj;

                    fstream plik;
                    plik.open( "Spis.txt", ios::in  );
                    if( plik.good() )
                    {
                        //tu operacje na pliku (odczyt)
                        plik.seekg(0, ios::end);
                        dlugosc = plik.tellg();
                        miejsce = /*dlugosc*/sizeof(osob);
                        plik.seekg(0, ios::beg);

                         for(a=1;a<miejsce;a++)
                        {
                            plik.read((string*)&osob, sizeof(osoba));

                            if(!strcmp(osob.nazwisko,szukaj))
                            {
                                ktos.szukaj();
                                system("pause");
                                system("cls");
                                break;
                            } 
                            
                        }
                        plik.close();
                    }
                      
                    if(a==miejsce)
                    {
                        cout << "Blednie podano nazwisko. Sprobuj ponownie!\n";
                        getchar();
                        getchar();
                        system ("cls");
                    }
      };
0

Wtf ? Castujesz obiekt klasy na string * a potem chcesz coś do niego wczytać ? lolz

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