我想知道printf函数中的%D、%d和%i有什么区别,因为它们都是显示整数,那么为什么要用3种格式来显示整数呢?这三种格式一定有区别吧?
编辑:我还要求 %D,不仅是 %i 和 %d。
最佳答案
首先,%D
不是标准。
当涉及到 %d
和 %i
时,输出没有区别(例如:printf
),正如某些用户所指出的关于评论和Oliver Charlesworth在他的回答上。
但是,对于输入数据(例如:scanf
),您可以使用 %i
扫描十六进制值(如果前面有 0x)或八进制值(如果前面有 0 ).它的默认行为将扫描十进制值。
例如:如果您使用%i
输入一些数据,例如0x28
,它将与dec中的40
相同。
编辑:一些代码作为例子:
#include <stdio.h>
int main(){
int dec, hex;
scanf("%i",&hex); //For example, hex = 0x28
scanf("%d",&dec); //For example, dec = 28
printf("Hex: %d\nDec: %d\n",hex,dec); // outputs: Hex = 40, Dec = 28
}
关于c - C 中的 %i、%d 和 %D 有什么区别? (打印),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44952357/