Пользовательский ввод ... Как проверить наличие клавиши ВВОД - PullRequest
1 голос
/ 22 апреля 2010

У меня есть раздел кода, где пользователь вводит данные с клавиатуры.Я хочу сделать что-то, когда нажата ENTER.Я проверяю '\ n', но он не работает.Как проверить, нажал ли пользователь клавишу ВВОД?

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++;
        }
    }
}

Ответы [ 3 ]

3 голосов
/ 22 апреля 2010
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++;
        }
    }
}
2 голосов
/ 22 апреля 2010

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

1 голос
/ 22 апреля 2010

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

...