私は C を学んでいますが、キーボードから入力を取得したいと考えています (2 つの数値の範囲 [0,99] とそれらを比較します)。入力を取得するための多くのオプションが見つかりました:
- scanf()
- getchar()
- fgets()
- 取得()
私はそれらのいくつかを試しました:
スキャン:
#include<stdio.h>
main()
{
int flag=0,num1, num2;
printf("Give a number between 0-999");
do{
if(flag == 1){
printf("Wrong Input. Plz give a number between 0-99 ");
}
printf("\nnumber 1: ");
scanf("%d", &num1);
flag=1;
}while(num1<0 || num1>1000);
printf("Give one more");
flag=0;
do{
if(flag == 1){
printf("Wrong Input. Plz give a number between 0-99 ");
}
printf("\nnumber 2: ");
scanf("%d", &num2);
flag=1;
}while(num2<0 || num2>1000);
if(num1>num2){
printf("the max number is : %d\n", num1);
}else
if (num1<num2){
printf("the max number is : %d\n", num2);
}else
printf("they are equals\n");
}
ただし、数字ではないを押すと、無限に印刷されます。
番号 2: 間違った入力。0 から 99 までの数字を入力して
ください。数字 2: 入力が間違っています。0 から 99 までの数字を入力して
ください。数字 2: 入力が間違っています。0 から 99 までの数字を入力してください
。 // そして続きます..
次に、getcharを使用しようとしました。
#include<stdio.h>
main()
{
int flag=0;
char input1,input2;
printf("Give a number between 0-999");
do{
if(flag == 1){
printf("Wrong Input. Plz give a number between 0-99 ");
}
printf("\nnumber 1: ");
input1 = getchar();
flag=1;
}while(input1<0 || input1>1000);
printf("Give one more");
flag=0;
do{
if(flag == 1){
printf("Wrong Input. Plz give a number between 0-99 ");
}
printf("\nnumber 2: ");
input1 = getchar();
flag=1;
}while(input2<0 || input2>1000);
if(input1>input2){
printf("the max number is : %c\n", input1);
}else
if (input1<input2){
printf("the max number is : %c\n", input2);
}else
printf("they are equals\n");
}
しかし、このコードは機能しません。助言がありますか?