Switch nie wykonuje instrukcji

0

Witam. Mam taki kod:

 

switch(W)
		{
		case 1 : {
			Student student; 
					 cout<<"Stworzono studenta"; 
			Tablica[0]=student; 
			cout<<"Dodano studenta";
				 zapis.open("baza.txt",ios::out);
     if(zapis.good())
     {    
          for(int i=0; i<2; i++)
           {
                    zapis<<Tablica[i].Nazwisko<<" ";
                    zapis<<Tablica[i].Imie<<" ";
                    zapis<<Tablica[i].Srednia<<" ";
                    zapis<<Tablica[i].Nr_Albumu<<" ";
                    for (int j=0; j<3; j++)
					
					zapis<<Tablica[i].Przedmioty[j]<<" ";
					
           }
          zapis.flush();
          zapis.close();
          
          
          cout<<"Dane zostaly zapisane"<<endl;
     } 
     else 
     
          
          cout<<"Nie udalo sie zapisac";
     
				 }
		break;

opcja case 1 wywołuje tylko stworzenie obiektu student klasy Student, nie wykonuje pozostałych poleceń. Nie mam już kompletnego pojęcia o co chodzi. Pomocy!

0

wywal dev-cpp(randomowe formatowanie) i zainstaluj sobie normalne środowisko

0

Nie należy formatować kodu korzystając z rand-a...

0

Astyle + drobne poprawki ręczne, mogło być lepiej ale trochę czytelniejsze:

switch(W)
{
case 1 : {
    Student student;
    cout<<"Stworzono studenta";
    Tablica[0]=student;
    cout<<"Dodano studenta";
    zapis.open("baza.txt",ios::out);
    if(zapis.good())
    {
        for(int i=0; i<2; i++)
        {
            zapis<<Tablica[i].Nazwisko<<" ";
            zapis<<Tablica[i].Imie<<" ";
            zapis<<Tablica[i].Srednia<<" ";
            zapis<<Tablica[i].Nr_Albumu<<" ";
            for (int j=0; j<3; j++)
                zapis<<Tablica[i].Przedmioty[j]<<" ";
        }
        zapis.flush();
        zapis.close();
        cout<<"Dane zostaly zapisane"<<endl;
    }
    else
        cout<<"Nie udalo sie zapisac";
}
break;
}

Rozumiem że Dodano studenta już nie jest wypisywane? W takim razie co to jest ta Tablica i jak ją definiujesz?
(A, i zmień IDE, poważnie.)

0

Tak, "Dodano studenta" już się nie wyświetla. "Tablica" jest to tablica obiektów klasy Student. Tworzy się tylko obiekt i nic poza tym.

0

Tablica jest zaalokowana?

0

Samo przypisanie do jakiegoś miejsca w niestałej tablicy nie ma prawa powodować błędu (chyba że masz np. nietrywialny operator przypisania - ach, uroki C++), chyba że przypisujesz poza tablicą (ale tutaj masz indeks 0, czyli tablica musiałaby mieć rozmiar 0).

Pokaż skąd masz tą tablicę, może to np. parametr funkcji i przekazujesz tam jakieś śmieci?

0

Myślę że za bardzo się zagłębiacie, bo nawet jeśli to wywaliło by jakis błąd albo na debuggerze by pokazało że przechodzi przez te instrukcje, ale program tworzy tylko obiekt i wychodzi z menu.

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