• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jak zamknąć program w c++?

Object Storage Arubacloud
0 głosów
985 wizyt
pytanie zadane 8 marca 2020 w C i C++ przez Szymon Włosek Początkujący (290 p.)
Zrobiłem prosty program.Otóż w menu mam opcje wyjście.Lecz nie wiem co mam tam dać.Próbowałem paru opcji:
getch()
Environment::Exit(1);
Window.Close();
Close();
W tych przypadkach wyskakiwało was not declared in this scope
Jedynie w przypadku return 0 wyskoczylo coś innego
 return-statement with a value, in function returning 'void' [-fpermissive]|

2 odpowiedzi

+1 głos
odpowiedź 8 marca 2020 przez adrian17 Ekspert (344,860 p.)

Jeśli to main, to wystarczy return.

Jeśli nie main... to też rekomenduję return w kolejnych funkcjach aż do maina. Ewentualnie można też rzucić wyjątek ze środka funkcji.

Natomiast.

Environment::Exit(1);

Window.Close();

To na pewno C++?

komentarz 8 marca 2020 przez Szymon Włosek Początkujący (290 p.)
Nie wiem czy to c++ znalazłem to gdzieś w necie.Nie działa return nie wiem czemu coś takiego wyskakuje return-statement with a value, in function returning 'void' [-fpermissive]|
komentarz 8 marca 2020 przez adrian17 Ekspert (344,860 p.)
Może pokaż jak wygląda teraz Twój kod ;)

Ale tak, jeśli zadeklarowałeś że funkcja nic nie zwraca, to `return 0` nie ma w niej sensu.
komentarz 8 marca 2020 przez Szymon Włosek Początkujący (290 p.)
void Lost::przeg()
{
    system("cls");
    int przegrana;
    cout<<"PRZEGRALES!"<<endl;
    cout<<"Aby wyjsc wybierz 1"<<endl;
    cout<<"Aby wrocic do menu poczatkowego wybierz 2"<<endl;
    cin>>przegrana;
    if (przegrana==1)
    {
        Sleep(100000);
    }
    if (przegrana==2)
    {
        Menu o1;
        o1.menu();
    }
}

 

komentarz 8 marca 2020 przez adrian17 Ekspert (344,860 p.)

Na oko, to masz tutaj problem projektowy.

        Menu o1;
        o1.menu();

Czy w tym momencie aby nie zagłębiasz się nieskończenie w rekursję? Menu->gra->przegrana->menu->gra->przegrana->etc...

Bo ogólnie to jak najbardziej powinno dać się to zrobić wychodząc z programu ciągiem return`ów z kolejnych funkcji.

komentarz 8 marca 2020 przez Szymon Włosek Początkujący (290 p.)
nie wiem co się zagłebiam ja dopiero próbuje ogarnąc tą obiektówke
komentarz 8 marca 2020 przez adrian17 Ekspert (344,860 p.)
To nie ma związku z programowaniem obiektowym, tutaj rozmawiamy o zwykłym wychodzeniu z funkcji :D
komentarz 8 marca 2020 przez Szymon Włosek Początkujący (290 p.)
Dobra dziala wystrarczyl;o usunąc 0
–2 głosów
odpowiedź 8 marca 2020 przez creend Gaduła (4,700 p.)
Daj bibliotekę #<stdio.h> i wtedy wychodzisz funkcją exit(0);
2
komentarz 8 marca 2020 przez adrian17 Ekspert (344,860 p.)
To nie C ;)

W C++ie exit() jest szczególnie szkodliwy, bo powoduje że nie wywołują się niektóre destruktory.
komentarz 8 marca 2020 przez Szymon Włosek Początkujący (290 p.)
to jak inaczej to zrobic
komentarz 8 marca 2020 przez niezalogowany

Sleep(100000) zmniejszyć do 10 s czyli Sleep(10000) 100s to prawie 2 minuty trochę długo i rzeczywiście jak void fun {… return;//bez niczego}

komentarz 8 marca 2020 przez Szymon Włosek Początkujący (290 p.)
specjalnie dałem taki sleep żeby było zamiast zamkniecia programu
komentarz 8 marca 2020 przez Szymon Włosek Początkujący (290 p.)

@fisker, Usunąłem 0 i działa dzieki

Podobne pytania

0 głosów
1 odpowiedź 107 wizyt
0 głosów
2 odpowiedzi 765 wizyt
0 głosów
2 odpowiedzi 132 wizyt
pytanie zadane 24 stycznia 2016 w C i C++ przez Avernis Nałogowiec (27,400 p.)

92,539 zapytań

141,382 odpowiedzi

319,476 komentarzy

61,928 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...