是否可以在一个getche()函数中收集多个输入?

时间:2017-01-03 21:12:04

标签: c function winapi input

我计划一个接受用户输入(4个整数)的函数并检查每个整数是否大于1且小于6,我想要一些简单的东西,并且认为如果函数& #39;的 getche() ' (我想使用此特定功能,因为我不希望用户在输入后输入'输入键)可以在一个代码中获得四个整数

我想避免这种情况(如果可能的话):

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

我在想是否有可能这样的事情:

int num = 0;
num = getche(4)

感谢。

2 个答案:

答案 0 :(得分:1)

你不能使用具有适当条件和getch()函数的循环吗?它可能会变得更容易。

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

答案 1 :(得分:0)

使用do / while循环来获取仅接受1到6的数字。使用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;
}