Category Archives: C語言

深度理解scanf

在C裡面,scanf 負責程式的輸入,用更精確的描述則是「以選定的格式讀取輸入並以選定的型態儲存」

沒錯,「以選定的格式」意味著 scanf 可以讓我們「自訂」輸入的格式,是個非常強大的功能,尤其是在出題者毫不體諒解題者(可憐的我們QQ)的時候 [雖然通常都是故意的 \(゚⊿゚)/ ]

光是口頭說明無法證明它為何如此強大,讓我們舉個例子吧~

假設你現在要把黏在一起的5個正8位數(也就是一個40位數)分開輸出,如果直接用 %d 當 int 讀取的話肯定會 overflow (超過 int 的範圍限制, 2^32),所以會需要寫個幾行的程式將 這些數字 用陣列儲存,再依序將 5段 char 用函式(或手動)轉換成數字

但當你精通 scanf 的時候,只需要短短2行就能解決

scanf("%8d%8d%8d%8d%8d", &a ,&b, &c, &d, &e);
/* A Piece Of Cake _(:3」ㄥ)_ */

到底 scanf 怎麼達成這些效果呢?就讓我們開始講解啦!

Continue reading 深度理解scanf