scanf gets getchar的基本使用

2021-09-25 11:20:14 字數 1015 閱讀 7503

scanf()是在c語言中最常用的輸入函式,它需要我們嚴格按照要求進行輸入,除非你用對scanf()使用了正規表示式;對於scanf(),當它遇到空格、回車、或者tab鍵時,都會自動停止輸入,剩下的內容逗留在緩衝區中,所以如果需要輸入字串,不推薦使用它。

關於正規表示式:

[ ]是個集合的標誌,%[ ]特指讀入此集合所限定的那些字元,比如%[a-z]是輸入大寫字母,一旦遇到不在此集合的字元便停止。

如果集合的第乙個字元是「」,這說明讀取不在」」後面集合的字元,既遇到」^」後面集合的字元便停止(這就是scanf函式裡的正規表示式應用)。

注意:此時讀取的字串是可以含有空格的。

例如:「%[^\n]」則表示當遇到回車時才結束輸入。

「%[a-z]」則表示輸入a到z的任何字元(包括回車、空格)都會停止。

「%[0-9a-za-z]」則表示只能輸入數字加字母

gets()主要用來接收字串,可以接收空格,遇到』\n』時結束,但不接收』\n』,把 『\n』留存輸入緩衝區;把接收的一串字元儲存在形式引數指標指向的空間,並在最後自動新增乙個』\0』。

相對於scanf(),我覺得gets()的使用更加的簡單,當你需要輸入那個字串的時候,就直接gets(str)就可以了。

可以無限讀取,不會判斷上限,因此使用gets不安全,可能會造成溢位。

getchar()主要用來接收單個字元,不管是空格或者回車都可以接收

可以用作特別字元作為結束的時候進行判斷。

例如:(c=getchar())!=』\n』 則表示遇到回車的時候結束接收字元。

空格換行

tabscanf("%s")

結束讀取,但不丟棄,仍在緩衝區

結束讀取,但不丟棄,仍在緩衝區中

結束讀取,但不丟棄,仍在緩衝區中

scanf("%c")

讀入讀入

讀入getchar()

讀入讀入

讀入gets()

讀入讀入,轉換成』\0』

讀入

iOS MBProgressHUD的基本使用

方式1.直接在view上show hud mbprogresshud showhudaddedto self.view animated yes retain hud.delegate self 常用的設定 小矩形的背景色 hud.color uicolor clearcolor 這兒表示無背景 顯...

PHP Elasticsearch的基本使用方法

一 連線elasticsearch 1 elasticsearch開啟之後,可以直接通過檢視基本資訊。2 將composer vendor下的檔案複製到ot thinkphp library vendor elasticsearch目錄下。3 連線elasticsearch,public es 初始...

RocketMQTemplate的基本使用方法

org.apache.rocketmq groupid rocketmq spring boot starter artifactid 2.0.3 version dependency org.apache.rocketmq groupid rocketmq client artifactid 4....