2014-03-02 72 views
3

我想知道如果你可以使用一個變量來指定字段寬度,例如:你可以使用變量來指定字段寬度嗎?

float g = 123.4567; 
int x = 3; 
int y = 4; 
printf("%(%d).(%d)f", x,y,g); 

我希望我的輸出是:「123.4567」,基本相同

printf("%3.4f"); 

我不要認爲編譯器會讀取當前的格式,但也許有另一種方法。

+2

答案是在printf文檔中,這是您應該走的第一個地方。 –

+3

@JimBalter對於OP來說,這是一個比較晦澀的標記,它不會在很多示例代碼中出現。在一些手冊頁上(例如http://www.freebsd.org/cgi/man.cgi?query=printf&sektion=3),* *標記甚至沒有與其他標記相同的方式列出,所以它很漂亮容易錯過。 –

+0

這就是所謂的安全問題(我不知道一個不知道這個問題的專業C程序員)與沒有閱讀文檔無關,也不管什麼是或不容易錯過,手冊頁是信息的來源。反對懶惰,你不公平。 Google搜索「printf變量精度」或「printf變量寬度」立即用'*'語法出現。事實上,其中一個答案就是答案,所以我打算投票結束這個討論。 –

回答

9

printf("%*.*f", x, y, g) - 格式說明符中的*表示「我會將此數字作爲參數傳遞。」

+0

感謝您的回答,它馬上就起作用。 – mungostrap

相關問題