getchar или cin.get() не работают в dev cpp

Я написал программу, в которой я хочу получать ввод от пользователя, и если нажата любая клавиша, кроме «N» или «n», программа отобразит «HELLO WORLD» в качестве вывода, в противном случае она отобразит сообщение «Выход» и выйдет . Приведенная ниже программа работает в Linux, но не в окнах Dev-cpp. Даже после изменения cin.get() на getchar() не работает. Программа не ждет ввода пользователя.

Я также добавил system("pause") перед cin.get(), но тогда он всегда переходит в другую часть программы всякий раз, когда нажимается клавиша.

#include <iostream>
#include <cstdlib>

using namespace std;

int main()
{
    char ch ;

    cout << "Press any key to continue, " << endl;
    cout << "Press N or n to exit " << endl;

    ch = cin.get();

    if(ch == 'N' || ch == 'n')
    {
        cout << "Exiting " << endl;
        exit(0);
    }
    else
    {
        cout << "HELLO WORLD" << endl;
    }


    return 0;

}

person Bhawan    schedule 25.12.2017    source источник
comment
Я предлагаю вместо этого использовать cin >> ch;.   -  person RHertel    schedule 25.12.2017
comment
Как описано здесь cplusplus.com/reference/istream/istream/get cin .get() возвращает целое число, поэтому мне просто интересно, этот код вообще компилируется?   -  person lpares12    schedule 25.12.2017


Ответы (1)


#include <iostream>
#include <cstdlib>
using namespace std;
int main(){
    char ch ;
    cout << "Press any key to continue, " << endl;
    cout << "Press N or n to exit " << endl;
    cin.get(ch);
    if(ch == 'N' || ch == 'n'){
        cout << "Exiting " << endl;
        exit(0);
    }
    else{
        cout << "HELLO WORLD" << endl;
    }
    return 0;
}

Вы можете попробовать cin.get(ch) вместо ch = cin.get().

person QuIcKmAtHs    schedule 25.12.2017