在C代码中采用4位数字

时间:2018-06-25 16:58:08

标签: c

我正在尝试用C语言从用户那里获取4位数字。

1)我尝试使用scanf("%d%d%d%d",&a,&b,&c,&d); 当我编译代码时,我输入数字(1234),然后按Enter键后代码不执行。

2)我尝试过:

a=getche();
b=getche();
c=getche();
d=getche();

但是使用getche a,b,c,d时另存为char而不是整数。并且代码无法再次正常运行。 我该怎么办?如何从用户那里获取4个数字并将每个数字保存为不同的整数?

2 个答案:

答案 0 :(得分:0)

How can i take 4 numbers from user and save every digit in different integer?

因为对您的问题有一些好的评论,所以我会坚持该问题。

如果您需要告知用户错误的输入,例如:

1f

或:

g2

这样的事情可能是一个不错的选择:

#include<stdio.h>

int checkInput(void);

int main(void){
    int a = checkInput();
    int b = checkInput();
    int c = checkInput();
    int d = checkInput();

    printf("\nYour numbers are:\n");
    printf("A = %d\n", a );
    printf("B = %d\n", b );
    printf("C = %d\n", c );
    printf("D = %d\n", d );

    return 0;
}

int checkInput(void){
    int option,check;
    char c;

    do{
        printf("Please type a number:\t");

        if(scanf("%d%c",&option,&c) == 0 || c != '\n'){
            while((check = getchar()) != 0 && check != '\n');
            printf("\tI sayed a Number please\n\n");
        }else{
            break;
        }
    }while(1);

    return option;
}

输出:

    Please type a number:   2
Please type a number:   1f
    I sayed a Number please

Please type a number:   1
Please type a number:   g2
    I sayed a Number please

Please type a number:   3
Please type a number:   4

Your numbers are:
A = 2
B = 1
C = 3
D = 4

答案 1 :(得分:0)

还有另一种方法,只需输入整数,然后将它们分开:

int number, result;
printf("Please, enter four numbers: ");
scanf("%d", &number);
while (number > 0) {
    result = number % 10;
    number /= 10;
    printf("%d\n", result);
}
printf("\n");

结果:

请输入四个数字:1234
4
3
2
1