scanf()函式的控制串函式名: 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 整型常數 指定輸入資料所佔寬度
*星號 空讀乙個資料
hh,ll同上h,l但僅對c99有效。
(b) 空白字元
空白字元會使scanf()函式在讀操作中略去輸入中的乙個或多個空白字元,空白符可以是space,tab,newline等等,直到第乙個非空白符出現為止。
(c) 非空白字元
乙個非空白字元會使scanf()函式在讀入時剔除掉與這個非空白字元相同的字元。
其他:在scanf函式中,我們可以使用 %c來讀取乙個字元,使用 %s 讀取乙個字串. 但是讀取字
符串時不忽略空格,讀字串時忽略開始的空格,並且讀到空格為止,因此我們只能讀取乙個單
詞,而不是整行字串.因此一般使用fgets來讀取乙個字串.其實scanf函式也可完成這樣的
功能,而且還更強大.
這裡主要介紹乙個引數,%[ ] ,這個引數的意義是讀入乙個字元集合. [ ]是個集合的標
志,因此%[ ]特指讀入此集合所限定的那些字元, 比如 %[a-z] 是輸入大寫字母,一旦遇到不在
此集合的字元便停止. 如果集合的第乙個字元是" ^ ", 這說明讀取不在" ^ " 後面集合的字
符,既遇到" ^ " 後面集合的字元便停止.注意此時讀入的字串是可以含有空格的.
eg. 輸入乙個字串, 這個字串只含有小寫字元.遇到第乙個不是小寫字元時停止.
scanf("%[a-z],str);
eg. 想輸入乙個字串, 遇到 "." 停止,可設計如下:
scanf("%[^.]", str);
使用這個引數,你可以完成許多強大的功能呦!
#include "1.h"
#include
#include
#include
int t1(void)/*
root@ubuntu:/work/demo# ./cmd
1234 std 435
str = 1234 std 435
*/
引用:c語言中關於scanf函式的用法
c語言 中scanf詳解
C語言中關於scanf函式的用法
華清遠見嵌入式學院講師。scanf 函式的控制串 函式名 scanf 功 能 執行格式化輸入 用 法 int scanf char format argument,scanf 函式是通用終端格式化輸入函式,它從標準輸入裝置 鍵盤 讀取輸入的資訊。可以讀入任何固有型別的資料並自動把數值變換成適當的機內...
C語言中scanf函式
scanf 函式每次讀取乙個字元,跳過所有的空白字元,直至遇到第1個非空白字元才開始讀取。因為要讀取整數,所以 scanf 希望發現乙個數字字元或者乙個符號 或 如果找到乙個數字或符號,它便儲存該字元,並讀取下乙個字元。如果下乙個字元是數字,它便儲存該數字並讀取下乙個字元。scanf 不斷地讀取和儲...
C語言中的scanf函式
思考 如果,我們想拿到使用者輸入的東西,怎麼辦?解決 我們需要使用 scanf 這個函式 1.scanf 的作用 在程式執行到 scanf 的時候,接收使用者輸入的一些資料,並儲存在變數之中 2.scanf 的語法 scanf 格式控制字串 變數位址列表 語義 格式控制字串裡寫佔位符,佔位符用來接收...