'%Id'是什么意思? (大写字母I,小写字母d)

问题描述:

我在问%Id,而不是%ld'%Id'是什么意思? (大写字母I,小写字母d)

谁能请给我解释一下什么是“我”究竟做:

I对于十进制整数转换(idu)输出使用 语言环境的替代输出数字,如果有的话。例如,对于 示例,由于glibc 2.2.3会在Persian("fa_IR")区域设置中提供阿拉伯 - 印度数字。

举个例子:

printf("%Id",1); 

换句话说就是%d%Id之间的区别?

任何人都可以用简单的单词和简单的例子来说明它的区别吗?

+0

请说明您的具体问题或添加其他详细信息,以确切地突出您所需要的。正如目前所写,很难确切地说出你在问什么。请参阅如何问问页面以获取帮助以澄清此问题。 – Olaf

+0

为什么你总是低调我的问题我试图理解我们没有相同的大脑和思维方式! –

+0

你已经粘贴了一个关于“I”究竟做什么的解释。如果你不明白,那么请具体说明哪一部分解释你不明白,以便有人可以解决你的具体差距。 – kaylum

printf格式选项I是一个glibC扩展名,用于选择数字的区域设置表示。它不是由C标准定义的,不应该用于便携式代码。

如果区域设置被C库正确选择和支持,则调用printf("%Id", 1);可能会生成一个字符串编码的Unicode代码点U + 0661 ١,它是阿拉伯数字1的表示形式。

http://www.fileformat.info/info/unicode/char/0661/index.htm

相反,printf("%d", 1);始终打印1,一个数字的西部代表性。

为了使事情更混乱,1被称为阿拉伯数字,而不是罗马数字I ...无关I%Id