首頁>Club>
11
回覆列表
  • 1 # 使用者1465424935672

    %-4d是用於C語言輸出的格式字串,可以用於printf類函式,包括printf,sprintf,fprintf,vfprintf,vprintf,vsprintf,snprintf,vsnprintf,vasprintf等等。

    各種函式中的含義是相同的,都是按照10進位制形式輸出整數值,輸出值範圍如果不足4列寬度,那麼按4列寬度輸出,否則按實際寬度輸出。輸出結果數值在左側,右側用空格補足。

    %-4d的四個字元每個都有各自的功能,具體如下:

    1%:格式字串的引導標識,每個格式字串必須以%開頭。

    2-:輸出的內容左側為有效資料,右側為補足字元。

    34:輸出佔4列寬度,不足用空格補齊,超出按實際長度輸出。

    4d:按照10進位制整型輸出。

    下面這個例子輸出兩行資料,每行五個數值:

    #include?<stdio.h>

    int?main()

    {

    printf("%-4d%-4d%-4d%-4d%-4d\n",1,12,123,123412,12345);

    printf("%-4d%-4d%-4d%-4d%-4d\n",23,123,2341,1,123456);

    return?0;

    }輸出結果為

    1???12??123?12341212345

    23??123?23411???123456從中可以看到其作用及缺陷。

    對於低於4位的整數,可以很好的實現輸出及對齊效果,比如例子中的第一列和第二列。

    如果輸出位數為4位,那麼輸出值和下一個輸出間不會有分隔符,比如第二行的34兩列,本來是2341和1,但輸出的效果是一個數23411。

    當數值超過4位時對齊效果會被打亂,同時與下一個輸出見沒有間隔。

    比如第一行的第四列,輸出數值為123412,與下一個12345沒有分隔,同時第五列的12345本應與第二行的123456左對齊,但由於123412侵佔了該位置,導致二者無法達成對齊效果。

    所以%-4d這類格式輸出,僅使用與資料規模在四位數以下的情況,超出則會出錯。

    如果在資料中存在負值,則負值僅可以為三位數或以下,因為輸出的符號也同樣會佔一列寬度。

  • 中秋節和大豐收的關聯?
  • 為什麼方便獨霸武林風的時候付高峰沒去武林風?