快捷导航

*修饰符在printf()和scanf()中的区别?

*修饰符在printf()和scanf()中的区别?

免责声明:本内容仅代表回答者见解不代表本站观点,请谨慎对待。

版权声明:作者保留权利,不代表本站立场。

回复

使用道具 举报

参与会员1

printf()函数中的*修饰符:

假定你不想事先指定打印字段的宽度,而是希望由程序来指定该值,那么你可以再字段宽度部分使用*代替数字来达到目的。

例如: int a=2;
printf("%*d",4, a);
打印a这个整型数时,以四位数的形式打印出来。那么结果就容易理解了。
打印结果: 0002
如果打印的数值为浮点型,那么也可以自己来定这个小数位数
例如: float a=1.5;
printf("%*.*f", 5, 3, a);
打印a这个浮点数时,前面有一个空格,要保证数字最右边是第五个位置,小数部分保留3位。如果%5.3d类似的不是浮点数的话,点后面的数字代表总共保留的数字位数。
打印结果: _1.500


scanf()函数中的*修饰符:

在scanf()中*修饰符截然不同,当把它放在%和说明字符之间时,它使函数跳过相应的输入项目。

例如: int a;
scanf("%*d, %*d, %d", &a);
printf("a = %d", a);
输入: 1 2 3
打印结果: a = 3
ps:我百度的结果,感觉这种用法不常见啊,至少你不说的话我是还没遇到过[笑哭]
回复

使用道具 举报

可能感兴趣的问答

发新帖
  • 微信访问
  • 手机APP