强制scanf(“”)仅接收数字0-7

时间:2019-11-08 13:39:00

标签: c scanf

我有一个任务是编写一个代码,该代码将接收一个从0到7(包括边沿)的数字,并将其转换为2的补码形式的4位二进制代码。

我的代码一切都很好。它的工作原理和计算很好。 但我想通过限制用户输入不为0-7的数字来使情况变得更好。 现在用户可以输入他们想要的任何数字,但是在转换系统中没有意义...

我该怎么做?

谢谢...

1 个答案:

答案 0 :(得分:-1)

您可以这样做

#include <stdio.h>

int main(void) 
{
    unsigned int digit;

    while ( scanf( "%u", &digit ) != 1 || 7 < digit )
    {
        scanf( "%*[^\n]" );
    }

    printf( "digit = %u\n", digit );

    return 0;
}

如果输入为

A
8
5

那么输出是

digit = 5