黑馬程式設計師 gets 和scanf

2021-06-26 02:11:11 字數 715 閱讀 1906

一、scanf與gets函式的區別

1. 利用scanf函式從鍵盤接收一字元(或整數)時,它唯讀入字元(或整數)本身,而把字元(或整數)後的回車符留在輸入緩衝區內;

2. gets函式從標準的輸入讀取,如果使用gets函式給字元陣列輸入字串時,字元陣列不能指定長度,因為,只要字元陣列的長度小於gets函式讀取的行快取的大小,即使你輸入的字元數大於你所規定的字元陣列的長度,gets函式也會接收所輸入的全部字元,造成字元陣列越界。

1、gets在scanf前呼叫,這種呼叫一般不會出現什麼問題,可以正常輸入。

2、scanf在gets前呼叫,這種情況就會出現問題,當輸入完scanf中的變數時,執行到gets函式,則不讓輸入任何字元,出現此問題的原因是gets函式接收了scanf輸入完後的回車符,解決的辦法是在scanf和gets中間,用getchar函式接收掉回車符,這樣就不會出現任何問題了。

二、詳細說明

scanf( )函式和gets( )函式都可用於輸入字串,但在功能上有區別。若想從鍵盤上輸入字串"hi hello",則應該使用get函式。

gets可以接收空格;而scanf遇到空格、回車和tab鍵都會認為輸入結束,所有它不能接收空格。因此在輸入的字串中包含空格時,應該使用gets輸入。

scanf和gets獲取字串時的區別

1.不同點:

scanf不能接受空格、製表符tab、回車等;

而gets能夠接受空格、製表符tab和回車等;

黑馬程式設計師 gets 和scanf

一 scanf與gets函式的區別 1.利用scanf函式從鍵盤接收一字元 或整數 時,它唯讀入字元 或整數 本身,而把字元 或整數 後的回車符留在輸入緩衝區內 2.gets函式從標準的輸入讀取,如果使用gets函式給字元陣列輸入字串時,字元陣列不能指定長度,因為,只要字元陣列的長度小於gets函式...

05 黑馬程式設計師 scanf函式 printf函式

這也是在stdio.h中宣告的乙個函式,因此使用前必須加入 include 呼叫scanf函式時,需要傳入變數的位址作為引數,scanf函式會等待標準輸入裝置 比如鍵盤 輸入資料,並且將輸入的資料賦值給位址對應的變數 函式原型 int scanf constchar format,scanf 函式返...

黑馬程式設計師

asp.net android ios開發 net培訓 期待與您交流!map hashtable 底層是雜湊表資料結構,不可以存入null鍵和null值。該執行緒是同步的,jdk1.0出現,效率低。hashmap 底層是雜湊表資料結構,允許使用null鍵和null值。該集合執行緒是不同步的,將has...