天天看點

printf(\"%*s%s%*s\",——)是什麼?

    我們可能知道scanf裡用*修飾符,是起到過濾讀入的作用。比如一個有三列數值的資料,我隻想得到第2列數值,可以在循環裡用scanf(“%*d%d%*d”, a[i])來讀入第i行的第2個數值到a[i]。 

  但是* 修飾符在printf中的含義完全不同。如果寫成printf(“%6d”, 123),很多童鞋應該就不會陌生了,這是設定域寬的意思。同理,%6s也是域寬。* 修飾符正是用來更靈活的控制域寬。使用%*s,表示這裡的具體域寬值由後面的實參決定,如printf(“%*s”, 6, “abc”)就是把”abc”放到在域寬為6的空間中右對齊。