2016-03-22 3 views
-1

私は無限ループ中で、ユーザーに整数型のデータを入力させたいとしましょう。その後、データは別の目的のために別の関数に渡されます。このプロセスは、ユーザーがデータの代わりにescを入力し、その時点でループを中断させるまで続きます。私はどうすればいいのですか?ユーザからの入力としてescを取ることによってループを終了する

while(1) 
{ 
    printf("enter the data that need to entered\npress esc to exit\n"); 

    scanf("%d",&n); 

    function(n); 
} 

私があれば、他の使用しようとしましたが、私は、データ入力として、ESCのASCII値を置けば、それは私が起こるしたくないループを抜けますか?

をあなたの最善の策は、カスタム「GetAsyncKeyState」適切なGetAsyncKeyStateを(選択するWindowsおよびLinux用の#IFDEFを使用する機能)または同等を作成することです:

答えて

0

dingriteは彼の他の回答に書いたとして、 。

希望の結果を得るために他の方法はありません。cinアプローチには、アプリケーションに焦点を当てるなどの問題があります。他のページにC++: execute a while loop until a key is pressed e.g. Esc?

それとも、この例を試すことができます

#include <stdio.h> 

int main (void) 
{ 
    int c; 

    while (1) { 
     c = getchar();   // Get one character from the input 
     if (c == 27) { break; } // Exit the loop if we receive ESC 
     putchar(c);    // Put the character to the output 
    } 

    return 0; 
} 

・ホープ、このことができます:

はこの質問を見てみましょう。

関連する問題