Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Program nie reaguje na getchar() system("PAUSE")

Ostatnio zmodyfikowano 2017-03-27 01:34
Autor Wiadomość
vito217
Temat założony przez niniejszego użytkownika
Program nie reaguje na getchar() system("PAUSE")
» 2017-03-26 23:59:03
Po uruchomieniu programu z pliku .exe wszystko działa tylko na koniec okno zamiast zostać wyłącza się, próbowałem paroma sposobami ale żaden nie działa.
Co jest tutaj źle (przykład z getchar()

C/C++
#include <iostream>
#include <windows.h>
#include <cstdio>
 
using namespace std;

string odp1, odp2, odp3;


int main()
{
    cout << "====Witaj w quizie====" << endl;
    Sleep( 1000 );
    cout << "Zadam ci 3 pytania, do kazdego kolejnego przejdziesz \n dopiero gdy odpowiesz poprawnie na poprzednie.\n Odpowiadaj wpisujac tylko A B C lub D." << endl;
    Sleep( 7000 );
    cout << "Zaczynamy!" << endl;
    Sleep( 2000 );
    while(( odp1 != "b" ) &&( odp1 != "B" ) )
    {
        cout << "Jak nazywa sie stolica Polski? \n A-Gdansk \n B-Warszawa \n C-New York \n D-Gniezno" << endl;
        cin >> odp1;
        if(( odp1 == "b" ) ||( odp1 == "B" ) )
        {
            cout << "Gratuluje!!" << endl;
            Sleep( 1000 );
           
        }
    }
    while(( odp2 != "c" ) &&( odp2 != "C" ) )
    {
        cout << "Jakiego koloru jest paznokiec? \n A-Bialego \n B-Paznokciowego \n C-Czarnego \n D-Nie wiem" << endl;
        cin >> odp2;
        if(( odp2 == "c" ) ||( odp2 == "C" ) )
        {
            cout << "Gratulacje !! " << endl;
            cout << "Ostatnie pytanie: " << endl;
            Sleep( 2000 );
        }
        else
        {
            cout << "A dodalem ze udezony mlotkiem??" << endl;
            Sleep( 2000 );
            cout << "Nie??" << endl;
            Sleep( 2000 );
            cout << "To sproj jeszcze raz!" << endl;
            Sleep( 1000 );
        }
       
    }
    while(( odp3 != "c" ) &&( odp3 != "C" ) )
    {
        cout << "Jak nazywa sis autor ksiazki pod tytulem 'Duchowe zycie zwierzat'?" << endl;
        cout << " A-Evans Katy \n B-Young William P. \n C-Wohlleben Peter \n D-Nesbo Jo" << endl;
        cin >> odp3;
        if(( odp3 == "C" ) ||( odp3 == "c" ) )
        {
            cout << "Czyzbys oszukiwal i sprawdzil w internecie?" << endl;
            Sleep( 1000 );
            cout << "Tak czy siak gratuluje!" << endl;
            Sleep( 3000 );
            cout << "=====================" << endl;
            Sleep( 200 );
            cout << "=======vito217=======" << endl;
            Sleep( 200 );
            cout << "=====================" << endl;
           
           
        }
        else
        {
            cout << "Matol!!!" << endl;
            Sleep( 2000 );
            cout << "Sprobuj jeszcze raz" << endl;
            Sleep( 2000 );
        }
    }
    getchar();
    return 0;
}
P-159457
1aam2am1
» 2017-03-27 00:00:13
Daj jeszcze jedno getchar()
Pp cin zostaje \n w buforze
P-159458
vito217
Temat założony przez niniejszego użytkownika
» 2017-03-27 00:08:31
dodanie jeszcze raz nic nie dało. Domyślam się że odpowiedź leży w "Pp cin zostaje \n w buforze"
Ale nie rozumiem tego.
P-159459
1aam2am1
» 2017-03-27 01:34:04
cin zostawia enter w buforze dlatego zazwyczaj potrzeba dwa razy dać getchar() pierwsze by wyczyścić bufor drugie by zatrzymać program. Jak niedziala spróbuj wyczyścić najpierw bufor za pomocą metody ignore
P-159465
« 1 »
  Strona 1 z 1