2010-04-22 50 views
1

我有一段代碼,用戶從鍵盤輸入輸入。當按下ENTER時,我想做點什麼。我正在檢查'\ n',但它不起作用。你如何檢查用戶是否按下了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之前輸入了其他的?

+0

哦,你是對的。謝謝 – user69514 2010-04-22 04:44:01

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 2010-04-22 04:53:29