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

3 に答える 3

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++;
        }
    }
}
于 2010-04-22T04:44:22.617 に答える
2

getlineEnter(またはReturn、キーボードによってはどちらの方法でもマークできます)が押された場合にのみ戻ります。したがって、それをさらに確認する必要はありません。ユーザーが入力したかどうかなど、他の何かを確認しますか。Enterの前に何か他のもの?

于 2010-04-22T04:42:20.913 に答える
1

getlineEnterキーが押されるまで戻りません。入力のみが押されたかどうかを確認する場合は、がline空かどうかを確認します。if (line.empty())

于 2010-04-22T04:42:43.700 に答える