在printf函式中,我們可以用數字修飾來控制列印的欄位寬度和精度,如下(為強調視覺效果,均填充0):
#include <stdio.h> int main() { int i=1; float f=2.4; printf("%04d\n",i); printf("%06.2f",f); return 0; }
運行如下:
0001 002.40
我們用*修飾也可以達到這樣的效果,如下:
#include <stdio.h> int main() { int i=1; float f=2.4; printf("%0*d\n",4,i); printf("%0*.*f",6,2,f); return 0; }
運行后與上面一致,簡單來說,*修飾符通過按順序讀取printf函式中的引數,等效替換成數字后控制列印,
如此,我們就可以宣告一個變數,運行時讓用戶賦值,通過*修飾符讓變數控制列印,互動感更強,如下:
#include <stdio.h> int main() { float f=2.4; int width,precision; printf("請輸入列印欄位寬度與精度:"); scanf("%d%d",&width,&precision); printf("%0*.*f",width,precision,f); return 0; }
運行時就可以自定義列印寬度與精度:
請輸入列印欄位寬度與精度:8 4 002.4000
注意:*可以接受的引數盡量為無符號整型,與數字修飾時保持一致,如其他型別,可能會發生轉換,也可能發生錯誤,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/49380.html
標籤:C
上一篇:常用的字串函式( str 系列)
下一篇:【演算法】 藍橋杯 高精度加法
