1 回答

TA貢獻(xiàn)35條經(jīng)驗(yàn) 獲得超18個(gè)贊
printf()函數(shù)中的*修飾符:
假定你不想事先指定打印字段的寬度,而是希望由程序來指定該值,那么你可以再字段寬度部分使用*代替數(shù)字來達(dá)到目的。
例如: ?int a=2;
printf("%*d",?4, a);
打印a這個(gè)整型數(shù)時(shí),以四位數(shù)的形式打印出來。那么結(jié)果就容易理解了。
打印結(jié)果: ?0002
如果打印的數(shù)值為浮點(diǎn)型,那么也可以自己來定這個(gè)小數(shù)位數(shù)
例如: ?float a=1.5;
printf("%*.*f", 5, 3, a);
打印a這個(gè)浮點(diǎn)數(shù)時(shí),前面有一個(gè)空格,要保證數(shù)字最右邊是第五個(gè)位置,小數(shù)部分保留3位。如果%5.3d類似的不是浮點(diǎn)數(shù)的話,點(diǎn)后面的數(shù)字代表總共保留的數(shù)字位數(shù)。
打印結(jié)果: _1.500
??scanf()函數(shù)中的*修飾符:
在scanf()中*修飾符截然不同,當(dāng)把它放在%和說明字符之間時(shí),它使函數(shù)跳過相應(yīng)的輸入項(xiàng)目。
例如: ?int a;
scanf("%*d, %*d, %d", &a);
printf("a = %d", a);
輸入: ?1 2 3
打印結(jié)果: ?a = 3
ps:我百度的結(jié)果,感覺這種用法不常見啊,至少你不說的話我是還沒遇到過[笑哭]
- 1 回答
- 0 關(guān)注
- 1242 瀏覽
添加回答
舉報(bào)