在printf函數中,咱們能夠用數字修飾來控制打印的字段寬度和精度,以下(爲強調視覺效果,均填充0):函數
#include <stdio.h> int main() { int i=1; float f=2.4; printf("%04d\n",i); printf("%06.2f",f); return 0; }
運行以下:spa
0001 002.40
咱們用*修飾也能夠達到這樣的效果,以下:code
#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函數中的參數,等效替換成數字後控制打印。blog
如此,咱們就能夠聲明一個變量,運行時讓用戶賦值,經過*修飾符讓變量控制打印,交互感更強,以下:ci
#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; }
運行時就能夠自定義打印寬度與精度:io
請輸入打印字段寬度與精度:8 4 002.4000
注意:*能夠接受的參數儘可能爲無符號整型,與數字修飾時保持一致,如其餘類型,可能會發生轉換,也可能發生錯誤。class