2010-04-26 21 views

回答

5

也許你應該改變順序?

printf("%.*s, %.*s", 3, "abcdef", 3, "xyz123"); 

通過,你可以硬編碼的精度,如果你不需要它作爲一個變量的方式:

printf("%.3s, %.3s", "abcdef", "xyz123"); 

(斯蒂芬佳能好心糾正錯字)

+1

這是怎麼得到5 upvotes?它不起作用。它在編譯時給出警告,在運行時給出段錯誤。硬編碼的也不起作用。 – 2010-04-26 20:20:07

+0

Jack,我編輯了你的格式字符串,以便編譯和正常工作。 – 2010-04-26 20:31:51

+0

謝謝,這是一個錯字,只是爲了快速複製和粘貼其他代碼,對不起:) – Jack 2010-04-26 21:13:29

2

你想做到像這個:

printf("%.*s, %.*s", 3, "abcdef", 3, "xyz123"); 

格式參數應該與格式說明符的順序相同。

+0

這是行不通的;還有兩個格式字符串。 – 2010-04-26 20:21:25

+0

固定(我從原帖中複製了該行,沒有注意到放置不當的雙引號)。 – mipadi 2010-04-26 20:25:23

1
printf("%.*s, %.*s",3,"abcdef",3,"xyz123");