2017-01-19 10 views
1

キーを押すwhileループから抜けることができるかどうかを知りたいと思います。たとえば、 'q'を押すまで番号をロードするプログラムを実行します。 私は、Linux上で動作し、私はこのような何かをしたいと思います:どのようにC++キーボードイベントを管理できますか?

do{ 
    cin >> num; 
    numbers.push_back(num); 
}while(key(q)); 

のための機能を提供億円、1ライブラリが存在している

+1

をGUIではありません入力コールバックのようなもの。あなたが達成したいことについてもう少し詳しくお知りになりたいなら、人々があなたのためにライブラリを推薦することを確信しています。 – George

+0

あなたはここで何か問題を抱えています。 'cin >> num;'はenterが押されるまでブロックし、 'q'をテストするのを防ぎます。これはいくつかの使用の可能性があります:http://stackoverflow.com/questions/21708564/stopping-an-infinite-loop-in-c-when-key-is-pressed – user4581301

+1

C++のキーボードイベントのようなものはありません。 – Slava

答えて

0
char key; 
bool loop = true; 
while(loop){ 
    cin >> key; 
    if(key == "WHATEVER MATCHED") loop = false 
} 

または

char key; 
while(true){ 
    cin >> key; 
    if(key == "WHATEVER MATCHED") break; 
} 
+0

プログラムがブロックされている間に、ユーザーが文字を入力してEnterキーを押すのを待っている間に、ユーザーが「ベクトル」に入れる必要のある数字を入力する方法はありますか? – user4581301

+0

それは私が探していたものではありませんが、おそらくC++でbeacauseです。あなたはapiなしでそれをすることはできませんので、Linuxのapiを魔法使いで知っています。 –

+0

(cin >> key &&!matched(key));)の間に、 'operator >>()'(つまり 'do {/ * nothing * /} 'のようなもの)の戻り値をチェックする必要があります。 '!cin 'のようなエラーが出るかもしれません(' while(cin >> key)switch(key){...} handle_cin_error(); ')。 –

関連する問題