有沒有在C的方式來傳遞printf()
我們要爲轉換指定使用的參數?一個小例子:傳遞一個轉換符作爲參數傳遞給printf()
想象我打電話給我的方案與./foo [-x]
如果-x
不存在,我希望它打印在十進制一定的價值。但是,如果-x
存在,我希望它以十六進制打印該值。
有沒有辦法通過printf()
我們想用作轉換說明符的字符串作爲參數,在這種情況下是"x"
或"%s"
?
-
注意:它不是像
char *format = "%s";
printf(format, "a string");
,我要找的。
如果你的目標是有東西相當於這個假設'的printf( 「%8升@ \ n」,(xflag 「X」: 「d」),3141592L?);其中'@'用在這裏'表明轉換說明符被指定爲單獨的參數,那麼答案是「否」。你不得不創造適當的格式字符串:'的printf((xflag「%.8lX」:「%.8ld」),3141592L?);',你的「它不是像」的評論表示您不希望但我在這裏的評論說:「你必須這樣做,或者使用你自己設計的東西,而不是'printf()'函數族」。 –
@JonathanLeffler謝謝你的回覆。我只是好奇,如果printf()有這種能力;) –