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

Pytanie odnośnie C++

Object Storage Arubacloud
–4 głosów
2,171 wizyt
pytanie zadane 27 czerwca 2017 w C i C++ przez Dominik Walczak Początkujący (380 p.)
edycja 27 czerwca 2017 przez Dominik Walczak

Kochani mam ważne pytanie odnośnie naszgo kochanego c++.

Otóz robię teleturniej milionerzy i do tej pory mam zaprogramowane tyle , że pokazuje się pytanie , 4 możliwe warianty i miejsce na wpisanie odpowiedzi.Wszystko fajnie ale po wpisaniu poprawnej jak i złe odpowiedzi gra toczy się dalej , a w przypadku podania złej odpwiedzi chciał bym żeby gra się blokowała i nie można było już kontunyować gry tak jak jest w prawdziwych milionerach.

Proszę o pomoc.crying

#include <iostream>
#include <windows.h>
using namespace std;

string odpowiedz;

int main()

{
    cout << "Witaj w programie Milionerzy!" << endl;
    cout<<"Ja nazywam sie Hubert Urbanski, a za moment uslyszysz 15 pytan, ktore zaprowadza Cie do samego Miliona!"<<endl;

    for(int i=15;i>=9;i--)
    {
    cout<<i<<endl;
    Sleep(1000);
    }
    cout<<"Czy jestes gotowy?"<<endl;
    for(int i=7;i>=4;i--)
    {
    cout<<i<<endl;
    Sleep(1000);
    }
    cout<<"Zaczynajmy!"<<endl;
    for(int i=2;i>=1;i--)
    {
    cout<<i<<endl;
    Sleep(1000);
    }
    system("cls");
    cout<<"Pytanie za 500 zl brzmi nastepujaco!"<<endl;
    cout<<"1.W ktorym roku wybuchla 1 wojna swiatowa?"<<endl;
    cout<<"A.1914!    |    B.1920!";
    cout<<endl;
    cout<<"C.1940!    |    D.1895!";
    cout<<endl;
    cout<<"Odpowiedz:";
    cin>>odpowiedz;

    if((odpowiedz=="A")||(odpowiedz=="a"))
    cout<<"Poprawna odpowiedz! Wygrywasz 500 zl!";
    else
    cout<<"Niestety jest to bledna odpowiedz!";
    cout<<endl;
    cout<<"2.Kto byl 1 ksieciem polski?";
    cout<<endl;
    cout<<"A.Boleslaw Krzywousty!    |    B.Mieszko 1";
    cout<<endl;
    cout<<"C.Boleslaw Chrobry!       |    D.Kazimierz Wielki";
    cout<<endl;
    cout<<"Odpowiedz:";
    cin>>odpowiedz;
    return 0;
}

 

komentarz 27 czerwca 2017 przez Szahid Pasjonat (20,930 p.)
Ciężko Ci pomóc jak nie podałeś kodu ale na oślep powiem żeby przerwał pętle instrukcją break
komentarz 27 czerwca 2017 przez Dominik Walczak Początkujący (380 p.)
Mogę podesłać zdięce jak wygląda projekt Ok?
komentarz 27 czerwca 2017 przez Szahid Pasjonat (20,930 p.)
Na tym forum robi się tak że kopiuje się kod który zawiera błąd ( w Twoim przypadku to chyba musisz podać cały skoro chcesz rady jak przerwać program) i wstawia się go w odpowiedni bloczek ( jak piszesz wiadomość to u góry masz przybornik do edycji tekstu i jak klikniesz te klamry ( są w dolnym prawym rogu ) to pojawi się okienko do wstawienia kodu
komentarz 27 czerwca 2017 przez Dominik Walczak Początkujący (380 p.)
Okey
komentarz 27 czerwca 2017 przez unknown Nałogowiec (39,560 p.)
Przerób dowolny kurs.
komentarz 27 czerwca 2017 przez 10kw10 Pasjonat (22,880 p.)
Jak bd tak pisal 20 pytan to powodzenia
komentarz 27 czerwca 2017 przez Dominik Walczak Początkujący (380 p.)
A da sie łatwiej?

2 odpowiedzi

0 głosów
odpowiedź 27 czerwca 2017 przez Szahid Pasjonat (20,930 p.)
wybrane 27 czerwca 2017 przez Dominik Walczak
 
Najlepsza

Rozwiązaniem Twojego problemu jest funkcja exit() z biblioteki stdlib.h. Dadam ją w Twoim kodzie. Taki miał być efekt ? 

#include <iostream>
#include <windows.h>
#include<stdlib.h>
using namespace std;
 
string odpowiedz;
 
int main()
 
{
    cout << "Witaj w programie Milionerzy!" << endl;
    cout<<"Ja nazywam sie Hubert Urbanski, a za moment uslyszysz 15 pytan, ktore zaprowadza Cie do samego Miliona!"<<endl;
 
    for(int i=15;i>=9;i--)
    {
    cout<<i<<endl;
    Sleep(1000);
    }
    cout<<"Czy jestes gotowy?"<<endl;
    for(int i=7;i>=4;i--)
    {
    cout<<i<<endl;
    Sleep(1000);
    }
    cout<<"Zaczynajmy!"<<endl;
    for(int i=2;i>=1;i--)
    {
    cout<<i<<endl;
    Sleep(1000);
    }
    system("cls");
    cout<<"Pytanie za 500 zl brzmi nastepujaco!"<<endl;
    cout<<"1.W ktorym roku wybuchla 1 wojna swiatowa?"<<endl;
    cout<<"A.1914!    |    B.1920!";
    cout<<endl;
    cout<<"C.1940!    |    D.1895!";
    cout<<endl;
    cout<<"Odpowiedz:";
    cin>>odpowiedz;
 
    if((odpowiedz=="A")||(odpowiedz=="a"))
    cout<<"Poprawna odpowiedz! Wygrywasz 500 zl!";
    else
     {
    cout<<"Niestety jest to bledna odpowiedz!";
    exit(NULL);
    }
    cout<<endl;
    cout<<"2.Kto byl 1 ksieciem polski?";
    cout<<endl;
    cout<<"A.Boleslaw Krzywousty!    |    B.Mieszko 1";
    cout<<endl;
    cout<<"C.Boleslaw Chrobry!       |    D.Kazimierz Wielki";
    cout<<endl;
    cout<<"Odpowiedz:";
    cin>>odpowiedz;
    return 0;
}

 

komentarz 27 czerwca 2017 przez Szahid Pasjonat (20,930 p.)
PS

Nie będę pisać referatu jak poprawić Twój kod ponieważ MZ nagrał film jak robić takie quizy. Zobacz sobie i spróbuju jeszcze raz napisać program

https://www.youtube.com/watch?v=h2Taf16gQDI
2
komentarz 27 czerwca 2017 przez unknown Nałogowiec (39,560 p.)
exit nie powinno się używać. Wystarczy użyć instrukcji return
komentarz 27 czerwca 2017 przez Szahid Pasjonat (20,930 p.)
Wystarczy
1
komentarz 27 czerwca 2017 przez Wujek Początkujący (410 p.)
@unknow. Jak mnie denerwuja takie komentarze jak Twój. Jak mówisz że czegoś nie powinien użyć to podaj dlaczego inne rozwiązanie jest lepsze. Czemu mam Ci wierzyć na słowo.
3
komentarz 27 czerwca 2017 przez j23 Mędrzec (194,920 p.)

@Wujek, exit powoduje natychmiastowe przerwanie programu i zamknięcie procesu. W konsekwencji wiąże się to z tym, że destruktory klas rezydujących w pamięci nie zostaną wywołane. Niby nic wielkiego, wszak program i tak będzie ubity. Tylko co, jeśli jakieś bufory nie zostaną "wyflushowane" (np. plikowe), albo jakieś globalne mutexy, eventy lub inne obiekty synchronizacyjne nie zostaną poprawnie zwolnione?

Zamiast exit już lepiej użyć throw.

komentarz 27 czerwca 2017 przez Wujek Początkujący (410 p.)
Dobra nie o to mi chodziło xD ale spoko dobrze wiedzieć.  Swoją droga byłem przekonany że exit wywołuje destructory, I nie zwalnia tylko  pamięci przydzielonych przez new
komentarz 27 czerwca 2017 przez unknown Nałogowiec (39,560 p.)

I nie zwalnia tylko  pamięci przydzielonych przez new

Jeśli w chwili zamknięcia programu jakaś pamięć jest zaalokowana to wszystkie nowoczesne systemy operacyjne same ją dealokują 

–2 głosów
odpowiedź 27 czerwca 2017 przez Wiciorny Ekspert (270,110 p.)
Dlaczego odp, jest jako string, dlaczego jest jako zmienna globalna? :D

Podobne pytania

0 głosów
1 odpowiedź 174 wizyt
pytanie zadane 28 kwietnia 2020 w C i C++ przez Eriss69 Gaduła (4,470 p.)
+1 głos
1 odpowiedź 123 wizyt
pytanie zadane 22 kwietnia 2022 w C i C++ przez polandonion Mądrala (7,040 p.)
+1 głos
3 odpowiedzi 383 wizyt
pytanie zadane 25 maja 2021 w C i C++ przez Drożdżówka Obywatel (1,870 p.)

92,570 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,958 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!

...