學了這麼久的C語言,你真的懂scanf函數麼?

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

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

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

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

學了這麼久的C語言,你真的懂scanf函數麼?

先看下scanf的用法:

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

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

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

小案例:

學了這麼久的C語言,你真的懂scanf函數麼?

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

scanf還有一個特點是:

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

代碼為證:

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

學了這麼久的C語言,你真的懂scanf函數麼?


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

學了這麼久的C語言,你真的懂scanf函數麼?


正確輸出 ☟

學了這麼久的C語言,你真的懂scanf函數麼?

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

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

對於熱愛編程的人來說,有一群一起學習的小夥伴很重要!如果你感興趣或者有需求的話,筆者有一個編程零基礎入門學習交流俱樂部,私信我【編程學習】獲取!還有學習視頻文件,歡迎初學者和正在進階中的小夥伴們!


分享到:


相關文章: