Pregunta

I tiene una sección de código en el que el usuario entra en la entrada desde el teclado. Quiero hacer algo cuando se pulsa ENTER. Estoy comprobando por '\ n', pero no está funcionando. ¿Cómo se comprueba si el usuario pulsa la tecla 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++;
        }
    }
}
¿Fue útil?

Solución

retornos getline sólo cuando un Intro (o Retorno, que se pueden marcar en cualquier dirección dependiendo de su teclado) es golpeada, por lo que no hay necesidad para evaluar posteriormente la que - hacer que desea comprobar algo más, tal vez, por ejemplo, si el usuario entrado algo else antes de entrar?

Otros consejos

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 no va a volver hasta que se pulsa Intro. Si desea comprobar si solamente ingresó fue presionado, cheque si el usuario está vacía line: if (line.empty())

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top