我得到了像12345679890这样的输入,但我只想一次读取1个整数,即读取1然后是2然后3 ...然后进行一些操作。但是,当我使用scanf时,它会读取所有数字,即1234567890.任何人都可以帮忙吗?谢谢!!
这是我的代码
#include <stdio.h>
int main() {
int input;
scanf("%x",&input);
while (scanf("%x",&input)==1){}
}
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;
}