我正在尝试用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个数字并将每个数字保存为不同的整数?
答案 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