user69514
user69514

Reputation: 27629

User input... How to check for ENTER key

I have a section of code where the user enters input from the keyboard. I want to do something when ENTER is pressed. I am checking for '\n' but it's not working. How do you check if the user pressed the ENTER key?

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

Upvotes: 2

Views: 18054

Answers (3)

kurige
kurige

Reputation: 3779

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

Upvotes: 4

GManNickG
GManNickG

Reputation: 504333

getline isn't going to return until enter is pressed. If you want to check if only entered was pressed, check if the line is empty: if (line.empty())

Upvotes: 1

Alex Martelli
Alex Martelli

Reputation: 882791

getline returns only when an Enter (or Return, it can be marked either way depending on your keyboard) is hit, so there's no need to check further for that -- do you want to check something else, maybe, such as whether the user entered something else before the Enter?

Upvotes: 2

Related Questions