我输入" 0"在数字之前

时间:2017-09-22 15:10:44

标签: c++ codeblocks

当我想在号码前输入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)。

1 个答案:

答案 0 :(得分:6)

%i与带前缀的0080100等...结合使用,使scanf将输入解释为八进制数,即基数8,而不是基数10.如果您希望scanf忽略此项,则应使用%d代替。