2014-01-05 4 views
1

Я до сих пор не знаю, как это работает с Visual Studio.Cin.get() проблема с C++

Предположительно он держит мою консоль открытой, но это не так. Он все еще мигает и закрывается. Я что-то не так?

#include <iostream> 
using namespace std; 

int main() 
{ 
    int a; 
    cout << "Please enter an integer: "; 
    cin >> a; 

    if (a == 1) 
    { 
     cout << endl << "You typed 1."; 
    } 
    else 
     cout << "That's not 1."; 

    cin.get(); 

    return 0; 
} 
+0

Вы будете иметь 'ENTER' символ в вашем входном потоке, который сразу потребляемую' cin.get(); '. –

+0

Ах, ладно спасибо. Так как я это исправить?^ – yellowcain

+0

Попробуйте 'cin.get()' * дважды *. –

ответ

2

Как уже отмечались в комментариях проблема заключается в том, что входной буфер содержит символ клавиши Enter, что считывается cin.get(); Вы можете использовать либо в следующей последовательности

char c; 

cin >> c; 

Или перед тем cin.get(), вы должны позвонить cin.ignore. Например

cin.ignore(numeric_limits<streamsize>::max(), '\n'); 
cin.get(); 

В последнем случае вы должны включить заголовок <limits>

Смежные вопросы