Question

J'ai une section de code où l'utilisateur entre les entrées du clavier. Je veux faire quelque chose quand vous appuyez sur ENTER. Je vérifie pour « \ n », mais il ne fonctionne pas. Comment vérifier si l'utilisateur appuie sur la touche 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++;
        }
    }
}
Était-ce utile?

La solution

retourne getline uniquement lorsqu'une Entrée (ou retour, il peut être marqué de toute façon en fonction de votre clavier) est frappé, donc il n'y a pas besoin de vérifier plus loin pour que - voulez-vous vérifier quelque chose d'autre, peut-être, par exemple, si l'utilisateur quelque chose tapais autre avant Enter?

Autres conseils

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 ne va pas revenir avant vous appuyez sur Entrée. Si vous voulez vérifier si uniquement entrée a été pressé, vérifiez si le line est vide: if (line.empty())

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top