当我想在号码前输入0
时遇到问题,但是当我只输入号码时一切正常。
#include <iostream>
#include <stdio.h>
int main()
{
int input, output;
printf("Enter number : ");
scanf("%i",&input);
output = input % 7;
printf("%i", output);
return 0;
}
例如:
8
时,输出为1
。但是当我输入08
时,输出为0
100
时,输出为2
。但是当我输入0100
时,输出为1
我知道在数字更快之前不要输入0
,但我想知道是否可以在没有错误的数字之前键入0
。
我在Windows 10 x64上使用Code :: Blocks 16.01(MinGW)。
答案 0 :(得分:6)
将%i
与带前缀的0
(08
,0100
等...结合使用,使scanf
将输入解释为八进制数,即基数8,而不是基数10.如果您希望scanf
忽略此项,则应使用%d
代替。