Dlaczego ta funkcja działa gdy pliku nie ma, ale gdy już jest to program się krzaczy?

0
void wyszukaj() //<-czyli wyszukaj w pliku (dobre :-) )
{  
    string imie [100] ;
    string nazwisko [100];
    string miasto [100];
    string ulica [100];
    string numer [100];
   int nr_linii; 
   int nr; 
   string linia;
   int wyszukaj; 
   cout<<"Podaj nazwisko:";
   cin>> wyszukaj;
  // transform(szukaj.begin(),szukaj.end(),szukaj.begin(),::toupper);

    fstream plik;
    plik.open("Spis.txt", ios::in);
    if(plik.good()==false)
      {
            cout<<"Blad. Nie znaleziono pliku Spis.txt"<<endl;
            Sleep(600);
            exit(0);
        }
    while(getline(plik,linia))
    {
    switch(nr_linii)
            {
                case 1: imxie[nr]=linia;    
                case 2: nazwisko[nr]=linia;    
                case 3: miasto[nr]=linia;     
                case 4: ulica[nr]=linia;   
                case 5: numer[nr]=linia;    
            }

            if(nr_linii==5)
            {
                nr_linii=0;
                nr++;
            }
            nr_linii++;
        }
        plik.close();
        for(int i=0;i<=nr; i++)
        {
            if(wyszukaj=="nazwisko"[i])
            {
                cout<<"Imie:"<<imie[i]<<endl;
                cout<<"Nazwisko:"<<nazwisko[i]<<endl;
                cout<<"Miasto:"<<miasto[i]<<endl;
                cout<<"Ulica:"<<ulica[i]<<endl;
                cout<<"Numer telefonu to:"<<numer[i]<<endl;
            }
        }
getch();  
}};
0

Gdzie nadajesz wartość zmiennej nr_linii

1

Korzystaj z formatera: http://format.krzaq.cc, bo takie wcięcia to dodatkowe źródła błędu.

int nr_linii; 
int nr;
...
switch(nr_linii)

A niby skąd pochodzi wartość nr_linii i nr? I nie, sama deklaracja nie powoduje, że zmienna ma jakąś określoną wartość (z wyjątkiem zmiennych statycznych).

Przy każdym case powinno być break, bo inaczej np. gdy nr_linii == 1 to wykonują się wszystkie instrukcje dla 1, 2, 3, 4, 5.

1

Ten kod się kompiluje, z niezadeklarowaną zmienną?

case 1: imxie[nr]=linia; 

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