2017-01-03 7 views
-1

私は、ユーザーの入力(4つの整数)をとり、各整数が1より大きく6より小さいかどうかをチェックする機能を計画しています。私は単純なものを求めていました。 'getche() '(私は彼が入力を与えた後にユーザーが' Enter 'キーをタイプすることを望まないので、この特定の関数を使いたい)1つのコードで4つの整数を得ることができます。1つのgetche()関数で複数の入力を収集することは可能ですか?

私はこの(可能であれば)避けたい:

int num1 = 0, num2 = 0, num3 = 0, num4 = 0; 
num1 = getche(); 
num2 = getche(); ... 

をそして、このようなものが可能である場合、私は考えていた:

int num = 0; 
num = getche(4) 

感謝。

+0

ただ試してみてください。あなたが何かを試して、特定の問題を抱えているときに戻ってください。疑わしい場合は、その関数のマニュアルページ/リファレンスを読んでください。それは、受け入れるパラメータと受け付けるパラメータが何であるかを正確に伝えます(ヒント: 'getche'はパラメータをとりません)。 – kaylum

+0

あなたはすでに試したことを示す[mcve]を含める必要がありますが、それはどうにか 'getche()'が動作する方法ではありません。 –

+0

[scanf](https://www.tutorialspoint.com/c_standard_library/c_function_scanf.htm)を使用できませんか? [Example here](http://stackoverflow.com/a/1412524/5601284) – byxor

答えて

0

do/whileループを使用して1から6までの数字を受け取ります.4つの数字を整数に連結するwhileループ。

#include <stdio.h> 
#include <stdlib.h> 
//#include <conio.h> 

int main(void) 
{ 
    int num = 0; 
    int digit = 0; 
    int each = 0; 

    printf("Type a four digit number using only 1 through 6\n"); 
    while (each < 4) { 
     do { 
      digit = getchar (); 
      //digit = getch ();//getch does not echo the typed character 
      if (digit == EOF) { 
       fprintf (stderr, "EOF\n"); 
       return 1; 
      } 
     } while (digit < '1' || digit > '6');//loop if character is NOT 1 to 6 
     //putch (digit);//echo the character 
     each++; 
     num *= 10; 
     num += digit - '0'; 
    } 
    printf("the number is %d\n", num); 

    return 0; 
} 
1

適切な条件とgetch()関数を持つループを使用できませんでしたか?それはより簡単になるかもしれません。

int l = 0; 
while (l < 4) 
{ 
    x = getch(); 
    // your conditions 
} 
+0

私は試しましたが、パラメータが条件を満たしているかどうかをチェックしようとすると面倒になりました。 – Ma250

+1

次に、4要素ブール配列を作成します。すべてのgetch()の後で、readパラメータが大丈夫かどうかチェックします。問題がなければ配列の適切なIDに 'true'を、それ以外の場合は 'false'を記入してください。 – MJey

+0

私は配列を作ることはできません – Ma250

関連する問題