gets和scanf都是可以在C語言中用來讀取字串的,但是它們其實也有很大的不同,本篇文章我們就來看gets和scanf之間有什麼區別。
gets和scanf的區別
1、gets可以接收空格;而scanf遇到空格、回車和Tab鍵都會認為輸入結束,所有它不能接收空格。
例如:如果輸入為"hello world"時,上面程式的運行結果是"hello world"。而如果用scanf則只能輸出hello
2、scanf對結尾回車符的處理:把回車符號保留在快取中。 gets對末端回車符的處理:接收回車,但把回車替換為\0.
3、gets的回傳值為char*型,當讀入成功時會傳回輸入的字串指標位址,出錯時傳回NULL;scanf傳回值為int型,傳回實際成功賦值的變數個數,當遇到檔案結尾標識時傳回EOF。
4、gets函數只用於讀入字串;scanf為格式化輸出函數,可以讀入任意C語言基礎類型的變數值,而不是僅限於字串(char*)類型。
以上是gets和scanf有什麼區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!