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

一只有灵魂的虾
浏览 1147回答 1
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 = 3ps:我百度的结果,感觉这种用法不常见啊,至少你不说的话我是还没遇到过[笑哭]
打开App,查看更多内容
随时随地看视频慕课网APP