2010-04-22 4 views
1

У меня есть раздел кода, в который пользователь вводит ввод с клавиатуры. Я хочу что-то сделать, когда нажата клавиша ENTER. Я проверяю «\ n», но он не работает. Как вы проверяете, нажал ли пользователь клавишу ENTER? толькоВход пользователя ... Как проверить клавишу 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++; 
     } 
    } 
} 

ответ

2

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

+0

ой, вы правы. спасибо – user69514

1

getline не возвращается, пока не будет нажата кнопка ввода. Если вы хотите проверить, если только вошел прессовали, проверьте, если line пуст: 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

Мое понимание было то, что он проверяет * только * на символ новой строки. И это лучший способ сделать именно это. – kurige

Смежные вопросы