This question already has answers here:
What is the difference between conversion specifiers %i and %d in formatted IO functions (*printf / *scanf)
(4个答案)
2年前关闭。
我和我的朋友在争论
GNU GCC编译器中的
(4个答案)
2年前关闭。
我和我的朋友在争论
%lli
和%lld
。我通常使用%lli
,并且每次他争辩要在%lld
和printf
中使用scanf
。他声称%lli
和%lld
是不同的。GNU GCC编译器中的
%lli
和%lld
格式说明符之间是否有区别,或者它们相同吗? 最佳答案
对于printf,它们完全相同。
http://en.cppreference.com/w/cpp/io/c/fprintf
d
,i
将有符号整数转换为十进制表示形式[-] dddd。
精度指定出现的最小位数。默认精度为1。
如果转换后的值和精度均为``0'',则转换不会产生任何字符。
对于scanf,它们是不同的。以下是来自文档的引用。
d
匹配一个十进制整数。
该数字的格式与strtol()期望的相同,基本参数的值为10
i
匹配一个整数。
该数字的格式与strtol()期望的相同,其中base参数的值为``0''(base由解析的第一个字符确定)
对于i
,如果您的电话号码以0
开头,它将被解析为八进制。
http://en.cppreference.com/w/cpp/io/c/fscanf
10-08 09:29