📜  只允许整数输入的程序

📅  最后修改于: 2022-05-13 01:54:55.052000             🧑  作者: Mango

只允许整数输入的程序

给定一个输入值N ,任务是只允许从用户那里获取整数输入。

现在,如果用户输入除整数以外的任何输入,即字符或符号,程序将不会接受它。下面是实现这种方法的 C 程序:

C
// C program for the above approach
#include 
  
// Driver Code
int main()
{
    int a;
    printf("Enter the input: ");
  
    // Take the input from console
    scanf("%d", &a);
  
    // Display the output
    printf("The value entered by the user is: ");
    printf("%d", a);
  
    return 0;
}


C
// C program for the above approach
#include 
  
// Driver Code
int main()
{
    int x = 0;
    x = getIntegerOnly();
    printf("\nvalue entered is: %d", x);
}
  
// Function to check if the user
// entered value is integer or not
int getIntegerOnly()
{
    int num = 0, ch;
    printf("Enter the input: ");
    do {
        ch = getch();
  
        // Checks the ASCII code of '
        // digits 0 to 9
        if (ch >= 48 && ch <= 57) {
            printf("%c", ch);
  
            // To make a digit
            num = num * 10 + (ch - 48);
        }
  
        // 13 is carriage return it breaks
        // and return the input
        if (ch == 13)
            break;
    } while (1);
  
    return (num);
}


输出:

输出



说明:在上面的程序中,如果输入是一个字符值,那么 scanf()函数将接受输入但不会在输出屏幕上打印任何内容,或者它会忽略该字符而只打印整数。因此,为了避免这个问题,让我们讨论如何编写一个只接受整数输入的程序。以下是相同的步骤:

步骤:以下程序涉及的步骤是:

  1. 步骤 1:用户创建一个名为getIntegeronly()的函数并将其分配给 int x。
  2. 步骤 2:在这个函数,输入的输入将经过一个 do-while 循环,其中 if 语句检查整数的 ASCII 码。如果 ASCII 码与整数 ASCII 码匹配,则输入将显示在屏幕上。
do
{
    If( ch>=48 && ch<=57)
}

Here ch is the input to be enter and 48 to 57 is the 
ASCII Code of 0 to 9 respectively. 
  • 第 3 步:要使单个数字成为数字,请将数字乘以输入的整数。
  • 第 4 步:为了中断循环,添加一个 if 语句,这样循环就不会进入无限循环。
if(ch == 13)
break;

Here 13 is the ASCII code of carriage return which breaks and 
return the input value.
  • 第 5 步:返回函数将存储在num 中的整数返回给x ,输出将打印在屏幕上。
printf("you have entered %d", x)

下面是实现上述方法的 C 程序:

C

// C program for the above approach
#include 
  
// Driver Code
int main()
{
    int x = 0;
    x = getIntegerOnly();
    printf("\nvalue entered is: %d", x);
}
  
// Function to check if the user
// entered value is integer or not
int getIntegerOnly()
{
    int num = 0, ch;
    printf("Enter the input: ");
    do {
        ch = getch();
  
        // Checks the ASCII code of '
        // digits 0 to 9
        if (ch >= 48 && ch <= 57) {
            printf("%c", ch);
  
            // To make a digit
            num = num * 10 + (ch - 48);
        }
  
        // 13 is carriage return it breaks
        // and return the input
        if (ch == 13)
            break;
    } while (1);
  
    return (num);
}

输出:

输出

说明:在执行程序时可以观察到,程序只接受整数输入并将输入打印在屏幕上。

想要从精选的视频和练习题中学习,请查看C 基础到高级C 基础课程