Пользовательский ввод ... Как проверить ключ ввода

StackOverflow https://stackoverflow.com/questions/2688283

  •  30-09-2019
  •  | 
  •  

Вопрос

У меня есть секция кода, где пользователь вводит ввод с клавиатуры. Я хочу сделать что-то, когда ввод нажата. Я проверяю « N», но это не работает. Как вы проверяете, нажал ли пользователь клавишу Enter?

if( shuffle == false ){
    int i=0;
    string line;
    while( i<20){
        cout << "Playing: ";
        songs[i]->printSong();
        cout << "Press ENTER to stop or play next song: ";
        getline(cin, line);            
        if( line.compare("\n") == 0 ){
            i++;
        }
    }
}
Это было полезно?

Решение

getline Возвращает только при вводе (или возврата, его можно пометить в любом случае в зависимости от вашей клавиатуры), так что нет необходимости проверять дальше для это - Хотите проверить что-то еще, может быть, например, ввел ли пользователь что-то еще до въезда?

Другие советы

if( shuffle == false ){
    int i=0;
    string line;
    while( i<20){
        cout << "Playing: ";
        songs[i]->printSong();
        cout << "Press ENTER to stop or play next song: ";
        if( cin.get() == '\n' ) {
            i++;
        }
    }
}

getline не возвращается до нажатия вождения. Если вы хотите проверить, Только введен нажата, проверьте, line пусто: if (line.empty())

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top