我和我的朋友在争论%lli和%lld。我通常使用%lli,每次他争论在printf和scanf中使用%lld。他声称%lli和%lld是不同的。
GNU GCC编译器中的%lli格式说明符和%lld格式说明符之间有什么区别,还是它们是相同的?
发布于 2017-08-21 07:13:17
对于印刷品来说,它们是完全一样的。
http://en.cppreference.com/w/cpp/io/c/fprintf
d,i将有符号整数转换为十进制表示-dddd。 精度指定要显示的最小数字数。默认精度为1。如果转换值和精度都为0,则转换结果不包含字符。
对于扫描来说,它们是不同的。下面是文件的引文。
d匹配十进制整数。数字的格式与strtol()预期的格式相同,基参数的值为10。i与整数匹配。数字的格式与strtol()预期的格式相同,基参数的值为0(基由解析的第一个字符确定)
在i的情况下,如果您的数字以0开头,它将被解析为八进制。
http://en.cppreference.com/w/cpp/io/c/fscanf
发布于 2017-08-21 07:15:40
也许你该看看文件.?
对于printf(),它们是等价的,但对于scanf()则不同。
http://www.cplusplus.com/reference/cstdio/scanf/
对于说明符d,从输入流中提取的字符是任意数量的十进制数字(0-9),可以选择在前面加上符号(+或-)。
对于i,它是任意数量的数字,可以选择在前面加上一个符号(+或-)。
默认情况下采用十进制数字(0-9),但0前缀引入八进制数字(0-7)和0 x十六进制数字(0-f)。
签名的论点。
https://stackoverflow.com/questions/45791137
复制相似问题