无法检查给定的数字是否为整数。(使用scanf返回值) int getvalue(int*arr\u值,int编号) { int i=0; 内部温度=0; while(i

无法检查给定的数字是否为整数。(使用scanf返回值) int getvalue(int*arr\u值,int编号) { int i=0; 内部温度=0; while(i,c,integer,scanf,C,Integer,Scanf,无法检查给定的数字是否为整数。(使用scanf返回值) int getvalue(int*arr\u值,int编号) { int i=0; 内部温度=0; while(i

无法检查给定的数字是否为整数。(使用scanf返回值)
int getvalue(int*arr\u值,int编号)
{
int i=0;
内部温度=0;
while(i
一旦输入失败,它将持续失败。输入作为整数是不可接受的-它作为整数仍然是不可接受的。您必须采取措施更改输入的状态。通常,也就是“读取并忽略字符直到下一个换行符(或EOF)”:
int c;而((c=getchar())!=EOF&&c!='\n')
。您不能
scanf(“%d”…)
非整数值。执行此操作时,函数(
scanf
)将仅返回0(从
stdin
扫描的值数)。将
temp
替换为
scanf
内部的“&temp”。正如@barakmanos所说,
scanf
返回扫描值的数量。正返回值并不意味着扫描的值是整数。是否有其他方法检查给定输入是否为整数??
int getvalue(int *arr_value, int number)
{
    int i = 0;
    int temp =0;
    while(i < number)
    {
        if((scanf("%d",temp)) == 1) // to check whether input is integer 
        {
            arr_value[i++] = temp; // to store it in array only if it is int
        }
        else
        {   
            printf("\n Enter a proper integer: "); 
            continue;// go to the loop again to prompt value from user
        }
    }
    for(i =0 ; i < number; i++)
    {
         printf("%d",arr_value[i]);
    }
 }
 /* this program runs the enter integer line infinitely, 
    although I tried it with a continue statement.*/