假定为int的scanf读取字符

问题描述 投票:0回答:2

我正在使用scanf读取int,但是,如果有人放置了int以外的内容,则会造成错误。我注意到,如果我为scanf(“%d”,%number);输入一个字符,它将保存为0。我希望0为一个选项。我如何避免这个问题?

测试代码为整数scanf(“%d”,&number);printf(“%d”,number);

c scanf
2个回答
0
投票

将输入读取为字符串,并检查输入是否为数字,然后使用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");
    }
}


0
投票

尝试使用此方法来查看输入的输入是否为数字%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;
}
© www.soinside.com 2019 - 2024. All rights reserved.