为什么我无法接受从零开始的整数输入?

Why I am unable to take integer input starting with zero?

我正在尝试使用 scanf 函数在 c 中获取整数输入。

当我输入 5 时,它会打印 5,但当输入为 05 时,它会省略 0 并打印 5。

谁能帮帮我,我不明白哪里出了问题。

int main(){
    int n;
    scanf("%d",&n);
    printf("%d",n);    
}

我的输入是05

例外的输出是05
实际输出为5

“5”、“05”和 "five" 是同一整数的三种不同 表示法 。当您采用整数输入时,您会得到一个整数作为输入。如果你想要一个整数的字符串表示作为你的输入,不要读入一个整数。读入一个可以容纳一串字符的缓冲区。

  1. 5 as int type 是 05 as int.
  2. 如果要以“05”或“020”格式打印数字,即带有前导零,请使用

    printf("%02d",var);// for 1 digit variable with one leading zero

    printf("%03d",var);// for 2 digit variable with one leading zero,for 1 digit variable with two leading zero

    printf("%04d",var);// for 2 digit variable with two leading zeros,for 1 digit variable with three leading zeros

    等等。如果您想要更多前导零,请在 d 之前增加值。