思考:如果,我們想拿到使用者輸入的東西,怎麼辦?
解決:我們需要使用
scanf()
這個函式
1.scanf
的作用:
在程式執行到
scanf
的時候,接收使用者輸入的一些資料,並儲存在變數之中
2.scanf
的語法:
scanf("
格式控制字串
",變數位址列表);
語義:格式控制字串裡寫佔位符,佔位符用來接收使用者輸入
1個什麼型別的資料,後面寫變數的位址,使用
&符號可以取到變數的位址,代表將使用者輸入的對應的資料存到這個變數裡。
3.scanf
的特點:
阻塞式函式:即執行到
scanf
時,除非使用者輸入完資料,否則會一直停在
scanf
處等待使用者輸入
4.scanf
函式中的佔位符
:代表的意義
: 要求使用者輸入
1個什麼型別的資料
. 所以後面給的變數的位址的那個變數的型別要和
格式控制符保持一致.
%d 代表要求使用者輸入
1個整型的資料
.%f
代表要求使用者輸入
1個單精度的小數
.%lf
代表要求使用者輸入
1個雙精度型別的小數.
%c 代表要求使用者輸入1個
char
型別的資料.
5.寫完s
canf
一定要注意後面接變數位址,並且接同型別的變數位址,否則取到的東西會很異常
scant詳解
一、scanf
需要注意的地方
1、如果scanf
函式格式裡要求輸入的是數(整型、浮點型),那麼不管你敲入多少個空格和回車都會被忽略掉,不會存入到變數中,除非真正輸入 了數字再按回車,才會存入變數
2、如果scanf
函式格式裡要求輸入的是字元(%c
),那麼你輸入的空格或者回車,都算存入變數
3、如果要接收多個輸入,可以寫在一起。以空格或者回車代表不同輸入
4、最好不要讓數字和字元一起輸入,否則可能出問題
5、如果一次想接收多個輸入,並且想改變分割符(預設是回車或者空格),則可指定相應的分隔符即可。
二、scanf
執行原理
1).
使用者從控制台輸入的資料是先儲存在
1個叫做
緩衝區地方
2).
當scanf
函式準備為變數賦值的時候
.先看看緩衝區
中有沒有資料
如果緩衝區中
沒有合適的資料
才會暫停程式讓使用者從控制台輸入如果緩衝區中
有合適的資料
直接將快取區中的資料拿出來賦值給變數。
C語言中scanf函式
scanf 函式每次讀取乙個字元,跳過所有的空白字元,直至遇到第1個非空白字元才開始讀取。因為要讀取整數,所以 scanf 希望發現乙個數字字元或者乙個符號 或 如果找到乙個數字或符號,它便儲存該字元,並讀取下乙個字元。如果下乙個字元是數字,它便儲存該數字並讀取下乙個字元。scanf 不斷地讀取和儲...
C語言中scanf函式的實現
在scanf.c檔案中,可以看到scanf函式,如下 include include include loc incl.h int scanf const char format,對於va list va start va end等在stdarg.h標頭檔案中定義的巨集,都已經在 stdarg.h標...
C語言中scanf 函式的小結
1.scanf 的返回值 scanf函式是有返回值的,接受乙個變數返回1。如 c scanf d d a,b 若輸入的全是整數,則c為2 若全是字元,則c為0 因為scanf在佔位符存在的情況下,只接受符合佔位符的資料。2.scanf的結束 如果不是 c,則以空格,回車,tab鍵結束,或非法字元結束...