【⛔C语言最熟悉的陌生人の你所不知道的scanf⛔】
引子
CSDN最近搞了一個問答板塊,我也沒怎么關注,但是前幾天收到一個廣告,點進一看,回答首次被采納,得現金紅包!還有這種好事!想想我CSDN錢包里5塊不到的余額,離100塊的提現門檻的距離又近了一步!日入三毛,百萬身價,指日可待啊!
尋找問題
說干就干,于是我就跑到問答版本開始尋找問題,為了保證采納率,我選轉了一圈,選擇了一個看著就比較小白的問題,哈哈,想著這不是手到擒來啊!初中的物理知識派上了用場了!
問題處理
等等。。。攝氏度轉華氏度咋轉的。。。對不起初中物理老師。。。
百度一下吧。。。
妥了,公式到手,然后我就把提問者的代碼敲了一遍,看看他那里錯了。
調試一波,還是真是32。
思考了一下:公式沒問題啊。。。那就是C不對啊。加打印!
果然,C一直是0啊,那肯定是輸入的姿勢不對啊。
scanf其實好久沒用了,還是剛開始學C的時候寫寫demo才用,有點模糊。。。
但是double咋用%f的啊,一般不是float使用%f的嘛。。。double雖然可以損失精度賦值給float,但是使用%f會不會異常啊?于是,百度了下scanf與double。。。果然double數應該使用%lf。。。立馬修改調試一波
妥了。小手一抖,紅包到手!
后記
對于我們剛入門的小白,出了bug,應該優先添加打印信息或者F5調試,把問題定位切割定位,然后對于一些函數的參數列表要明確使用對象,不能想當然啊!
擴展篇 scanf
網上查了半天的scanf,各種表述的都有,不過最后發現還是官方原版的靠譜,內容最全,特別是涉及長度修飾的部分(例如double數輸入,一般文檔都不寫的,只舉例了float,要是知道double咋辦,不好意思,請重新百度關鍵字)!就連我最愛的菜鳥編程都不全,哎。
附上英文的官方文檔,需要深挖的同學可以直接去文末的官方鏈接去研究哈!
A format specifier for scanf follows this prototype:
%[*][width][length]specifier
Where the specifier character at the end is the most significant component, since it defines which characters are extracted, their interpretation and the type of its corresponding argument:
Except for n, at least one character shall be consumed by any specifier. Otherwise the match fails, and the scan ends there.
The format specifier can also contain sub-specifiers: asterisk (*), width and length (in that order), which are optional and follow these specifications:
This is a chart showing the types expected for the corresponding arguments where input is stored (both with and without a length sub-specifier):
Note: Yellow rows indicate specifiers and sub-specifiers introduced by C99.
權威官方:http://www.cplusplus.com/reference/cstdio/scanf/
總結
以上是生活随笔為你收集整理的【⛔C语言最熟悉的陌生人の你所不知道的scanf⛔】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NEW WAVE年轻人品质旅游报告
- 下一篇: 直播电商在新商业环境下的价值分析