C語言學完了,你真的懂了scanf函數?

C語言學完了,你真的懂了scanf函數?

很多人可能到現在也不是很明白stdio.h這個頭文件有什麼作用,初學者看書的時候應該看到過這句話:

"C語言本身是不包含輸入輸出語句的。"



printf函數和scanf函數一樣,都被聲明在頭文件stdio.h裡。(特殊IDE除外)

如果在開頭沒有加stdio.h,你如果不用輸入輸出語句是沒有一點問題的,代碼為證:

C語言學完了,你真的懂了scanf函數?

沒有#include<stdio.h>下面是結果呦/<stdio.h>


C語言學完了,你真的懂了scanf函數?

來看看結果吧,正常運行,沒有任何異常



先看下scanf的用法

scanf(格式控制,地址表列)

格式控制和printf函數一樣,地址表列是由若干個地址組成的表列,可以是變量的地址,或字符串的首地址

上面是scanf函數的格式,這裡著重強調一下地址列表。

小案例:

a是一個整型變量,上面的scanf後半句加了一個&符號,讀者要弄清楚&是幹什麼用的:&是一個取地址運算符,&a表示a變量的地址,這樣才符合scanf的用法。

scanf還有一個特點是:

從鍵盤輸入的樣式一定要和你在代碼中輸入的樣式一樣,如果一樣則會出現邏輯性錯誤。

代碼為證:

C語言學完了,你真的懂了scanf函數?

錯誤1:輸出一個數後換行

C語言學完了,你真的懂了scanf函數?

錯誤2:兩個數之間有逗號

C語言學完了,你真的懂了scanf函數?

正確輸出



此外還需要注意的一點事:在輸入數值數據時,如輸入空格、回車、Tab鍵或遇到非法字符,認為該數據結束。

直白話就是,如果想錄入空格,不要用scanf函數,不是錄不了,比較複雜,想了解用法的,可以自行百度,gets函數可以直接錄入空格。


每天一個編程小知識,期待你的關注


分享到:


相關文章: