函式名: scanf
功 能: 執行格式化輸入
用 法: int scanf(char *format[,argument,…]);
scanf()函式是通用終端格式化輸入函式,它從標準輸入裝置(鍵盤) 讀取輸入的資訊。可以讀入任何固有型別的資料並自動把數值變換成適當的機內格式。
其呼叫格式為: scanf("《格式化字串》",《位址表》);
scanf()函式返回成功賦值的資料項數,出錯時則返回eof。
其控制串由三類字元構成:
1。格式化說明符;
2。空白符;
3。非空白符;
(a) 格式化說明符
格式字元 說明
%a 讀入乙個浮點值(僅c99有效)
%a 同上
%c 讀入乙個字元
%d 讀入十進位制整數
%i 讀入十進位制,八進位制,十六進製制整數
%o 讀入八進位制整數
%x 讀入十六進製制整數
%x 同上
%c 讀入乙個字元
%s 讀入乙個字串
%f 讀入乙個浮點數
%f 同上
%e 同上
%e 同上
%g 同上
%g 同上
%p 讀入乙個指標
%u 讀入乙個無符號十進位制整數
%n 至此已讀入值的等價字元數
% 掃瞄字元集合
%% 讀%符號
附加格式說明字元表
修飾符 說明
l/l 長度修飾符 輸入"長"資料
h 長度修飾符 輸入"短"資料
w 整型常數 指定輸入資料所佔寬度
(b) 空白字元
空白字元會使scanf()函式在讀操作中略去輸入中的乙個或多個空白字元,空白符可以是space,tab,newline等等,直到第乙個非空白符出現為止。
(c) 非空白字元
乙個非空白字元會使scanf()函式在讀入時剔除掉與這個非空白字元相同的字元。
三、scanf函式的使用範例
例1
#includeint main()
}
輸出:
在對於a,b,c的賦值中,無論我們如何敲寫空白字元和回車字元都不會影響,一直到abc的值被賦完才會結束一次的賦值。
例2#include
int main()
}輸出:
在例2中我們對它的輸入格式做了修改。結果如上圖所示。可以發現在輸入數值時,其他字元可以出現在數值前,而不可以出現在數值後,這樣將會造成程式的錯誤。
例3
#include int main( )
在scanf函式中,對於字元的接收需要注意對於回車字元的使用
出現這種情況我們可以新增一句getchar();來進行修改
例4
includeint main( )
return 0;
}
相較於例3;我們新增了一句getchar語句則輸出為
我們發現該輸出則變成想要的形式了。
c語言中scanf的用法
格式 scanf 輸入控制符 輸入引數 1 當scanf控制符是字元 c 的時候,要注意回車,回車也是乙個字元,當我們連續輸入兩個整數,回車 空格都屬於字元,都會被下一輪的scanf c 運算子 吸收。導致我們無法再次輸入乙個運算子。使用getchar 可以解決這一問題。2 逗號後不要忘記取位址符 ...
C語言中關於scanf函式的用法
華清遠見嵌入式學院講師。scanf 函式的控制串 函式名 scanf 功 能 執行格式化輸入 用 法 int scanf char format argument,scanf 函式是通用終端格式化輸入函式,它從標準輸入裝置 鍵盤 讀取輸入的資訊。可以讀入任何固有型別的資料並自動把數值變換成適當的機內...
C語言中關於scanf函式的用法
scanf 函式的控制串 函式名 scanf 功 能 執行格式化輸入 用 法 int scanf char format argument,scanf 函式是通用終端格式化輸入函式,它從標準輸入裝置 鍵盤 讀取輸入的資訊。可以讀入任何固有型別的資料並自動把數值變換成適當的機內格式。其呼叫格式為 sc...