【发布时间】:2021-01-07 20:21:12
【问题描述】:
-
我正在尝试在 C 中打印八进制和十六进制数。以下是按预期打印的
int a = 012; printf("%d",a); //printing as 10. The decimal representation of octal 12.但是,当我使用
%d扫描012时,0被忽略,它正在打印12。是什么原因?int b; scanf("%d",&b); printf("%d", b); //printing 12. -
当我使用
%d扫描0x12时,输出为0,如下所示int b; scanf("%d",&b); printf("%d", b); //printing 0
这是什么原因?为什么他们没有给出任何运行时错误?
提前致谢!!!
【问题讨论】:
-
Re "printing as 10. the octal of 12.",这是不正确的。它打印 10,这是 12 八进制的十进制表示。
标签: c hex scanf format-specifiers octal