c - C 中的 %i、%d 和 %D 有什么区别? (打印)

标签 c printf

我想知道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/

相关文章:

c - MD5——添加消息长度

c - 为什么 fork() 的输出是特定顺序的?

javascript - JS 中的 Scanf 和 Printf

c - C语言中的点积函数

c - 什么时候应该在汇编语言中设置进位标志

c - 什么时候指向内存区域最后一个元素的指针对指针运算有效?

c - 从文件读取字符串时出错

c - fopen、fprintf、fclose 的单行代码?

c - printf中的*有什么用?

c - 负有符号 8 位整数的十六进制表示