學了這么久的C語言,你真的懂scanf函數么? 很多人可能到現在也不是很明白stdio.h這個頭文件有什么作用,初學者看書的時候應該看到過這句話: C語言本身是不包含輸入輸出語句的。 printf函數和scanf函數一樣,都被聲明在頭文件stdio.h里。(特殊IDE除外) 如果在開頭沒有加stdio.h,你如果不用輸入輸出語句是沒有一點問題的,代碼為證: file:///C:\Users\Administrator.WIN-STED6B9V5UI\AppData\Local\Temp\ksohtml25264\wps6.png 先看下scanf的用法 scanf(格式控制,地址表列) 格式控制和printf函數一樣,地址表列是由若干個地址組成的表列,可以是變量的地址,或字符串的首地址 上面是scanf函數的格式,這里著重強調一下地址列表。 小案例: file:///C:\Users\Administrator.WIN-STED6B9V5UI\AppData\Local\Temp\ksohtml25264\wps7.png a是一個整型變量,上面的scanf后半句加了一個&符號,讀者要弄清楚&是干什么用的:&是一個取地址運算符,&a表示a變量的地址,這樣才符合scanf的用法。 scanf還有一個特點是: 從鍵盤輸入的樣式一定要和你在代碼中輸入的樣式一樣,如果一樣則會出現邏輯性錯誤。 代碼為證: file:///C:\Users\Administrator.WIN-STED6B9V5UI\AppData\Local\Temp\ksohtml25264\wps8.png 錯誤1:輸出一個數后換行 file:///C:\Users\Administrator.WIN-STED6B9V5UI\AppData\Local\Temp\ksohtml25264\wps9.png 錯誤2:兩個數之間有逗號 file:///C:\Users\Administrator.WIN-STED6B9V5UI\AppData\Local\Temp\ksohtml25264\wps10.png 正確輸出 此外還需要注意的一點事:在輸入數值數據時,如輸入空格、回車、Tab鍵或遇到非法字符,認為該數據結束。 直白話就是,如果想錄入空格,不要用scanf函數,不是錄不了,比較復雜,想了解用法的,可以自行百度,gets函數可以直接錄入空格。 |