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

问题描述 投票:-2回答:1

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

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

我该怎么做?

谢谢...

c scanf
1个回答
-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;
}

如果输入是

0
8
5

然后输出是

digit = 5
© www.soinside.com 2019 - 2024. All rights reserved.