c scanf整数,连续输入,但只需读取一个

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

我得到了像12345679890这样的输入,但我只想一次读取1个整数,即读取1然后是2然后3 ...然后进行一些操作。但是,当我使用scanf时,它会读取所有数字,即1234567890.任何人都可以帮忙吗?谢谢!!

这是我的代码

#include <stdio.h>

int main() {
    int input;
    scanf("%x",&input);

   while (scanf("%x",&input)==1){}
}
c
1个回答
0
投票

12345679890是一个整数,你想要做的是一次读一个数字。为此,您将使用格式字符串%1u而不是%x

首先,%x指定一个十六进制项,这意味着它也将通过a接受f,而%d将允许你可能不想要的前导符号。

此外,在进入循环之前,您似乎消耗(并丢弃)第一个数字,因此您最好使用以下内容:

#include <stdio.h>

int main(void) {
    unsigned int digit;
    while (scanf("%1d", &digit) == 1) {
        //doSomethingWith(digit);
    }
    return 0;
}
© www.soinside.com 2019 - 2024. All rights reserved.