【问题标题】:force scanf("") to only receive a number 0-7强制 scanf("") 只接收数字 0-7
【发布时间】:2019-11-08 13:39:00
【问题描述】:

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

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

我该怎么做?

谢谢...

【问题讨论】:

  • 有一个循环,它检查结果并要求另一个,直到用户输入介于 0 和 7 之间的内容。
  • 你让某人说出 1 到 7 之间的数字。他说“8”。你是做什么的?
  • “限制用户输入不是0-7的数字”是什么意思?当他们的手指靠近任何其他键时就拍他们的手腕?
  • 请发布您目前拥有的代码。
  • 本机你不能,你必须手动仔细检查输入 - 理想情况下,基本上是条件,如果需要,然后将输入放入循环中,以便在不满足条件时再次提示一次,如建议的那样这个话题

标签: c scanf


【解决方案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

【讨论】:

    猜你喜欢
    • 2012-03-09
    • 1970-01-01
    • 1970-01-01
    • 2022-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    相关资源
    最近更新 更多