2010-04-22 25 views
1

j'ai une section de code où l'utilisateur entre les entrées du clavier. Je veux faire quelque chose quand on appuie sur ENTER. Je vérifie pour « \ n », mais il ne fonctionne pas. Comment vérifier si l'utilisateur a appuyé sur la touche ENTRÉE?Entrée utilisateur ... Comment vérifier ENTRER clé

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

Répondre

2

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

+0

oh vous avez raison. grâce – user69514

1

getline ne va pas revenir avant vous appuyez sur Entrée. Si vous voulez vérifier si ne entré est pressé, vérifiez si le line est vide: if (line.empty())

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

Je crois comprendre qu'il vérifie * uniquement * pour le caractère de nouvelle ligne. Et c'est la meilleure façon de le faire. – kurige