[爆卦]printf用法是什麼?優點缺點精華區懶人包

為什麼這篇printf用法鄉民發文收入到精華區:因為在printf用法這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者FRAXIS (喔喔)看板C_and_CPP標題[心得] printf的一些用法時間Tue Ju...



下面一點點小技巧是我在寫完一堆畫星星作業之後湊出來的。

雖然有些技巧沒什麼用,還是跟大家分享一下。


printf( "%-5d", n ); // 向左對齊 預設是向右對齊
printf( "%+5d", n ); // 如果n是正數,就會加上+,如果是負數,就加上-
printf( "%05d", n ); // 開頭用0來補齊,大數運算的時候會用到

我覺得最有用的是* ,可以讓印出字串的欄位寬度可變

假設要印出 k 個 0,用printf的技巧可以用一個敘述就完成

printf( "%0*d", k, 0 );

同理 printf( "%*s", k, "" );

可以用一行指令就印出k個空白,排版的時候很方便,不用多寫一個迴圈。

有了 * 的主要好處是可以更動態的排版。

如果是要印出連續k個*,我都是用一個夠長且其中每個字元都是*的字串來輔助。

puts( "**********" + 10 - k );


而sprintf的好處就是可以把一個整數轉換成一個字串(C語言沒有itoa的函式)

sprintf( result, "%d", n );

還可以拿來計算一個數字的位數 (10進位, 8進位, 16進位都可以)

sprintf( temp, "%d%n", number, &digits );

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.119.162.51
bobhsiao:"%+5d" 這個以前都不知道 06/23 22:39
tiyun:推阿~ 06/24 03:14
sunkill:推 06/24 08:28

你可能也想看看

搜尋相關網站