3 回答
TA貢獻2051條經驗 獲得超10個贊
這里更詳細。
整數值或*指定最小字段寬度。如果需要,結果用空格字符填充(默認情況下),在右對齊時在左側填充,在左對齊時在右側填充。在使用*的情況下,寬度由int類型的附加參數指定。如果參數的值為負,則結果將指定為-標志,且字段寬度為正。(注意:這是最小寬度:該值永遠不會被截斷。)
.后跟整數或*,或者都不指定轉換的精度。在使用*的情況下,精度由int類型的附加參數指定。如果此參數的值為負,則將其忽略。如果既不使用數字也不使用*,則精度為零。有關精度的確切影響,請參見下表。
因此,如果我們嘗試兩種轉換規范
#include <stdio.h>
int main() {
int precision = 8;
int biggerPrecision = 16;
const char *greetings = "Hello world";
printf("|%.8s|\n", greetings);
printf("|%.*s|\n", precision , greetings);
printf("|%16s|\n", greetings);
printf("|%*s|\n", biggerPrecision , greetings);
return 0;
}
我們得到輸出:
|Hello wo|
|Hello wo|
| Hello world|
| Hello world|
- 3 回答
- 0 關注
- 1305 瀏覽
添加回答
舉報
