如何从获取输入中排除浮点数并向用户发送错误消息?

Llo*_*oyd 3 c

我需要编写一个只接受1-10的整数的程序(不包括字符和浮点数).我在用fgets.它运行但我不能排除浮点数.这是我的代码的一部分:

char choice[256];
int  choice1;

fgets(choice, 256, stdin);
choice1 = atoi(choice);
if (choice1 > 0 && choice1 <= 10)
{
    switch (choice1)
    {
    case 1:

    ...

    case 10:
Run Code Online (Sandbox Code Playgroud)

救命?

unw*_*ind 5

您可以使用strtol()转换而不是atoi().这将为您提供指向不属于该数字的第一个字符的指针.如果该字符不是空白,则该数字不是整数.