
古代的劍客們與
對手相逢時,無
論對手多麼強大,
明知不敵,也要亮出自己的劍!
讀者:對于 size t 那樣的類型定義, 當我不知道它到底是 long 還是其它類型的時候, 我應該使用什麼樣的 printf 格式呢?
小林:把那個值轉換為一個已知的長度夠大的類型, 然後使用與之對應的 printf 格式。例如, 輸出某種類型的長度, 你可以使用
printf("%lu", (unsigned long)sizeof(thetype));
讀者:我如何用 printf 實作可變的域寬度?就是說, 我想在運作時确定寬度而不是使用 %8d?
小林:printf("%*d", width, x) 就能達到你的要求。
讀者:如何輸出在千位上用逗号隔開的數字?金額數字呢?
小林:<locale.h> 提供了一些函數可以完成這些操作, 但是沒有完成這些任務的标準方法。printf() 惟一一處對應 locale 的地方就是改變它的小數點字元。
讀者:為什麼 scanf("%d", i) 調用不行?
小林:傳給 scanf() 的參數必須是指針。改為 scanf("%d", &i) 即可修正上面的問題。
有時候,正是那些意想不到之人,成就了無人能成之事。
——圖靈
小編二維碼
長按/加好友
- END -