C语言格式化输入输出


%i和%d之间的区别

作为匹配整数的转换说明,printf格式串中两者并没有区别,但是在scanf格式串中%d只能匹配十位制整数,而%i可以匹配八进制(前缀为0,如086)、十进制或十六进制(前缀0x或0X,如0x55)。如果在输入过程中意外的加上一个0,会产生意想不到的错误,因此尽量避免使用%i。

%d %e %f %g区别

示例代码

#include <stdio.h>

 

int main(void)

{

    printf("%-6d,%10d\n", 86, 1040);

    printf("%12.6e\n", 30.253);

    printf("%.4f\n", 83.162);

    printf("%-6.2g\n", .0000009979);

    printf("%6.2g\n", 9979.79);

    printf("%6.3g\n", 9979.79);

    printf("%6.4g\n", 9979.79);

    printf("%6.5g\n", 9979.79);

    printf("%10.4g\n", 9979.79);

}

程序输出

86    ,      1040

3.025300e+01

83.1620

1e-06 

 1e+04

9.98e+03

  9980

9979.8

      9980

d —— 表示十进制形式整数,添加负号表示左对齐,默认为右对齐,6和10表示显示的数字个数。

e —— 表示指数(科学计数法)形式的浮点数。12.6表示12个有效数字(包括符号)和精确到小数点后6位。

f ——  表示“定点十进制”形式的浮点数,没有指数。同e

g —— 表示指数形式或定点十进制形式的浮点数,适合无法预知数的大小或者数值变化大的情况下使用。大小适中时g会采用定点十进制,如果显示非常大或非常小的数,g会转换成指数形式。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM