執行,輸入:5656high後,結果是:5656。
通過執行可以發現它的作用是:如果輸入的字元屬於方括號內字串中某個字元,那麼就提取該字元;如果一經發現不屬於就結束提取。該方法會自動加上乙個字串結束符到已經提取的字元後面。
注意:方括號兩邊不能空格,如:scanf("%[ 1234567890 ]",string);
scanf("%[ ^1234567890 ]",string); 不然空格也會算在裡面的。
用這種方法還可以解決scanf的輸入中不能有空格的問題。只要用 scanf("%[^\n]",string); 就可以了。
ansi c 標準向 scanf() 增加了一種新特性,稱為掃瞄集(scanset)。 掃瞄集定義乙個字元集合,可由 scanf() 讀入其中允許的字元並賦給對應字元陣列。 掃瞄集合由一對方括號中的一串字元定義,左方括號前必須綴以百分號。 例如,以下的掃瞄集使 scanf() 讀入字元 a、b 和 c: %[abc]
使用掃瞄集時,scanf() 連續吃進集合中的字元並放入對應的字元陣列,直到發現不在集合中的字元為止(即掃瞄集僅讀匹配的字元)。返回時,陣列中放置以 null 結尾、由讀入字元組成的字串。
用字元 ^ 可以說明補集 把 ^ 字元放為掃瞄集的第一字元時,構成其它字元組成的命令的補集合,指示 scanf() 只接受未說明的其它字元。
對於許多實現來說,用連字元可以說明乙個範圍。
例如,以下掃瞄集使 scanf() 接受字母 a 到 z:
%[a-z] 重要的是要注意掃瞄集是區分大小寫的。因此,希望掃瞄大、小寫字元時,應該分別說明大、小寫字母。
%[ ] 的用法:%[ ]表示要讀入乙個字元集合, 如果[ 後面第乙個字元是」^」,則表示反意思。[ ]內的字串可以是1或更多字元組成。空字符集(%)是違反規定的,可導致不可預知的結果。%[^]也是違反規定的。
讀取在 a-z 之間的字串,如果不在此之前則停止,如
讀取不在 a-z 之間的字串,如果碰到a-z之間的字元則停止,如
scanf,sscanf高階用法
最近遇到了解析配置的問題,用正規表示式感覺大題小做,使用sscanf因只會用基本用法,感覺功能不夠,上網搜了下,解析起來不費吹灰之力,也很簡潔。原帖出處不詳,網上到處是,我做了點修改 名稱 sscanf 從乙個字串中讀進與指定格式相符的資料.函式原型 int sscanf string str,st...
輸入格式控制
console 輸入格式控制 標準輸出通常是文字模式為主的主控台 終端機 這邊介紹幾個格式控制技巧,在主控台顯示時可以協助輸出的顯示格式。首先介紹格式字元控制,先表列一些常用的控制字元 反斜線 單引號 雙引號 u x 以16進製數指定unicode字元輸出 d 以8進製數指定unicode字元輸出 ...
C 流格式控制
格式控制 當輸入 輸出的資料沒有指定格式,它們都按預設的格式輸入 輸出。然而,有時需要對資料 格式進行控制。這時需利用ios類中定義的格式控制成員函式,通過呼叫它們來完成格式的設定。ios類的格式控制函式如下所示 long flags const 返回當前的格式標誌。long flays long ...