我正在使用scanf读取int,但是,如果有人放置了int以外的内容,则会造成错误。我注意到,如果我为scanf(“%d”,%number);输入一个字符,它将保存为0。我希望0为一个选项。我如何避免这个问题?
测试代码为整数scanf(“%d”,&number);printf(“%d”,number);
将输入读取为字符串,并检查输入是否为数字,然后使用atoi()
函数将字符串转换为整数。
#include <studio.h>
#include <string.h>
int main ()
{
char[] input;
int input_as_int;
scanf("%s", input);
if(isdigit(input))
{
input_as_int = atoi(input);
}
else
{
printf("Invalid input");
}
}
尝试使用此方法来查看输入的输入是否为数字%d
:
#include <stdio.h>
int main(void) {
int number;
if (scanf("%d", &number))
printf("A number!\n");
else
printf("Not a number!\n");
return 0;
}