C語言中的scanf函式

2021-07-06 02:26:04 字數 1877 閱讀 7575

思考:如果,我們想拿到使用者輸入的東西,怎麼辦?

解決:我們需要使用

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鍵結束,或非法字元結束...