C本學習筆記scanf

2021-09-07 00:16:56 字數 1950 閱讀 5638

乙個、scanf功能介紹

這也是在

stdio.h

中宣告的乙個函式

。因此使用前必須增加

#include。呼叫

scanf

函式時,

須要傳入

變數的位址

作為引數

,scanf

函式會等待標準輸入裝置

(比方鍵盤

)輸入資料

,而且將輸入的資料賦值給位址相應的變數。

函式原型為:

int scanf(const char*format,...);

二、scanf使用方法

#import int main()

這裡從鍵盤接收乙個整形數存放到變數age中。當接收多個數時,能夠這樣用:

#import int main()

這裡要注意的是,在輸入時能夠輸入乙個數回車後再輸入乙個數。也能夠輸入乙個數空格再輸入還有乙個數回車。可是假設是這種又不一樣。

scanf

("%d,%d"

, &age, &age2);

scanf中的兩個格式化引數是用逗號隔開的,全部同一時候輸入兩個數就要用逗號分隔而不再是空格,你可能注意到規律了。scanf中格式化引數是用什麼分隔的在輸入數時。要一次回車輸入的話就要用什麼分隔。

對字元的使用方法也相同適用。

char a;

scanf("%c",&a);

printf("a=%c", a);

接收乙個字元,存放到字元變數a中,同一時候輸入多個字元也適用上面的使用方法。

三、字串的接收 

從鍵盤輸入的字串放到指定陣列中例如以下:

// 字串陣列

char str[10];

// 接收字串

scanf("%s", str);

注意:這裡的的str不用加取位址符。陣列名代表著位址。當輸入字串時不能有空格,否則會出現下圖結果。

能夠看到,空格和空格以後的字串都不會被接收,由於scanf函式在遇到空格或回車時會返回。

看看以下的你或許就明確了:

// 字串陣列

char str[10];

char str2[10];

// 接收字串

scanf("%s %s", str, str2);

printf("%s\n%s", str, str2);

scanf在兩個引數中間是空格分隔的,遇到第乙個空格就返回把空格前面的字串存放到str中,再把空格後面的字串存放到str2中。

那麼按小橋的說法是不是用scanf接收字串就不能包括空格了呢?可是有時乙個字串中確實有空格。答案是否定的,由於scanf的高階功能能夠解決問題。 

四、%格式控制符

scanf的%格式控制符可以控制函式什麼時候返回。如:

scanf("%s", str); // 接收的字串中沒有空格

scanf("%[^\n]", str2); // 接收包括空格的字串

第二句和第一句的格式化引數不同,什麼意思呢?%[^\n]表示的是除了\n符外。接收全部字元,也就是函式遇到回車才返回 ^是取反的意思。相同輸入 i love oc! 結果例如以下:

很多其它 % 資訊。讀者可以找到自己的資訊 

C語言學習筆記 scanf

函式名 scanf 功能 執行格式化輸入 用法 int scanf char format argument,scanf 函式是通用終端格式化輸入函式,它從標準輸入裝置 鍵盤 讀取輸入的資訊。可以讀入任何固有型別的資料並自動把數值變換成適當的機內格式。其呼叫格式為 scanf 格式化字串 位址表 s...

C語言scanf函式筆記

1.變數的記憶體分析 1 位元組和位址 記憶體以 位元組 為單位 1gb 1024mb 1024 1024kb 1024 1024 1024b 每個位元組都有自己的位址 資料越大,佔位元組數越多 在64位編譯器中,基本資料型別所佔位元組數 char 乙個位元組 int 四個位元組 float 四個位...

C語言基礎學習 scanf函式

1.scanf 的作用 在程式執行到 scanf 的時候,接收使用者輸入的一些資料,並儲存在變數之中 2.scanf 的語法 scanf 格式控制字串 變數位址列表 語義 格式控制字串裡寫佔位符,佔位符用來接收使用者輸入 1個什麼型別的資料,後面寫變數的位址,使用 符號可以取到變數的位址,代表將使用...