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