Scanf函數
1.功能:接受用戶從鍵盤中鍵入的數據,並按照格式控制符的要求進行類型轉換,再送到地址表列中對應的變量存儲單元。
2.一般形式:scanf(“輸入格式串”,輸入項地址表列);
3.返回類型:scanf函數返回成功讀入的數據項數,讀入數據時出現錯誤或者遇到了“文件結束”則返回EOF。
4.輸入格式串:
格式串 | 含義 | 備註 | 延伸1 | 延伸2 | 延伸3 | |||
---|---|---|---|---|---|---|---|---|
%d | int | %ld | long int | %md | m爲指定的輸出字段的寬度 | %.nd | n爲指定的輸出實數的小數位 | |
%f | float | %lf | double | |||||
%o | 八進制int | |||||||
%x | 十六進制int | |||||||
%u | unsigned-無符號整形 | %lu | long unsigned-無符號長整形 | |||||
%e | 以指數形式輸出實數 | |||||||
%g | 根據數值的大小,自動選f格式或e格式輸出實數 | 選擇輸出是佔寬度較小的一種,不輸出無意義的零。 | ||||||
%c | char-一個字符 | |||||||
%s | string-一個字符串 | |||||||
%p | pointer-指針的值-十六進制整形- | 相當於0x%x,常用在變量地址的輸出 | ||||||
%[scanfset] | 功能見下方 |
5.scanf函數輸入詳解:
(1)用scanf函數輸入字符串,以及scanf和gets函數的區別:
①char string[];scanf(“%s”,string);//輸入字符串到字符數組,遇到回車鍵,Tab,空格輸入結束。
②char string[];gets(string);//可以接收空格,tab,遇到回車鍵結束。
(2)scanfset 有兩種形式:
①scanf(“%[bulabula~]”,str);//一種是以非 “^” 字符開頭的 scanset , 表示在讀入字符串時將匹配所有在 scanfset 中出現的字符,遇到非scanfset 中的字符時輸入就結束;
②scanf(“%[^bulabula~]”,str);//另外一種形式是以 “^” 字符開頭的scanfset ,表示在讀入字符串時將匹配所有不在scanfset 中出現的字符,遇到scanfset 中的字符輸入就結束。
比如:scanf(“%[^\n]”,str);//表示遇到回車鍵時字符串輸入結束,可接收空格等特殊字符。
6.注意事項:
①scanf函數在輸入過程中如遇格式錯誤會立即停止輸入。
引用:格式字符-百度百科,《計算機程序設計-C語言版》