我在数字前输入"0"时出错

1 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;
}
Run Code Online (Sandbox Code Playgroud)

例如 :

  • 当我输入时8,输出是1.但是当我输入时08,输出是0
  • 当我输入时100,输出是2.但是当我输入时0100,输出是1

我知道只是0在数字更快之前不要输入,但我想知道是否可以0在没有错误的数字之前键入.

我在Windows 10 x64上使用Code :: Blocks 16.01(MinGW).

Som*_*ken 5

使用%i与前缀组合0(08,0100等..),使scanf解释输入八进制数是基数为8,如果你想不底座10 scanf忽略这一点,你应该使用%d来代替.