看一下頁下標題爲「Precision can be omitted or be any of:」的信息。如何在printf()中使用多個精度?在
的例子:printf("%.*s", 3, "abcdef");
工作,輸出:abc
(截斷字符串的其餘部分)
現在,我想有多個參數字符串格式化(部分):
printf("%.*s, %.*s", 3, 3, "abcdef", "xyz123");
但程序崩潰。
什麼是正確的語法?
謝謝。
看一下頁下標題爲「Precision can be omitted or be any of:」的信息。如何在printf()中使用多個精度?在
的例子:printf("%.*s", 3, "abcdef");
工作,輸出:abc
(截斷字符串的其餘部分)
現在,我想有多個參數字符串格式化(部分):
printf("%.*s, %.*s", 3, 3, "abcdef", "xyz123");
但程序崩潰。
什麼是正確的語法?
謝謝。
也許你應該改變順序?
printf("%.*s, %.*s", 3, "abcdef", 3, "xyz123");
通過,你可以硬編碼的精度,如果你不需要它作爲一個變量的方式:
printf("%.3s, %.3s", "abcdef", "xyz123");
(斯蒂芬佳能好心糾正錯字)
你想做到像這個:
printf("%.*s, %.*s", 3, "abcdef", 3, "xyz123");
格式參數應該與格式說明符的順序相同。
這是行不通的;還有兩個格式字符串。 – 2010-04-26 20:21:25
固定(我從原帖中複製了該行,沒有注意到放置不當的雙引號)。 – mipadi 2010-04-26 20:25:23
printf("%.*s, %.*s",3,"abcdef",3,"xyz123");
這是怎麼得到5 upvotes?它不起作用。它在編譯時給出警告,在運行時給出段錯誤。硬編碼的也不起作用。 – 2010-04-26 20:20:07
Jack,我編輯了你的格式字符串,以便編譯和正常工作。 – 2010-04-26 20:31:51
謝謝,這是一個錯字,只是爲了快速複製和粘貼其他代碼,對不起:) – Jack 2010-04-26 21:13:29