c语言中gets函数可以输入空格吗_C语言中scanf()与gets()函数的区别,哪一个可以读入空格啊?...
展開全部
1.scanf不能接受空格、制表符Tab、回車等;對(duì)末尾回車符的處理:把回32313133353236313431303231363533e59b9ee7ad9431333431356634車符保留在緩存中。
gets能夠接受空格、制表符Tab和回車等;對(duì)末尾回車符的處理:接收回車,但把回車替換為\0。
2.scanf :當(dāng)遇到回車,空格和tab鍵會(huì)自動(dòng)在字符串后面添加'\0',但是回車,空格和tab鍵仍會(huì)留在輸入的緩沖區(qū)中。
gets:可接受回車鍵之前輸入的所有字符,并用'\n'替代 '\0'.回車鍵不會(huì)留在輸入緩沖區(qū)中
3.gets從標(biāo)準(zhǔn)輸入設(shè)備讀字符串函數(shù),其可以無限讀取,不會(huì)判斷上限,以回車結(jié)束讀取,所以程序員應(yīng)該確保buffer的空間足夠大,以便在執(zhí)行讀操作時(shí)不發(fā)生溢出。scanf()可以讀取所有類型的變量。
擴(kuò)展資料:
注意問題
(1)在高版本的 Visual Studio 編譯器中,scanf 被認(rèn)為是不安全的,被棄用,應(yīng)當(dāng)使用scanf_s代替 scanf。
(2) 對(duì)于字符串?dāng)?shù)組或字符串指針變量,由于數(shù)組名可以轉(zhuǎn)換為數(shù)組和指針變量名本身就是地址,因此使用scanf()函數(shù)時(shí),不需要在它們前面加上"&"操作符。
(3) 可以在格式化字符串中的"%"各格式化規(guī)定符之間加入一個(gè)整數(shù),表示任何讀操作中的最大位數(shù)。
(4) scanf函數(shù)中沒有類似printf的精度控制。
(5) scanf中要求給出變量地址,如給出變量名則會(huì)出錯(cuò)
(6) 在輸入多個(gè)數(shù)值數(shù)據(jù)時(shí),若格式控制串中沒有非格式字符作輸入數(shù)據(jù)之間的間隔,則可用空格,TAB或回車作間隔。
(7) 在輸入字符數(shù)據(jù)(%c)時(shí),若格式控制串中無非格式字符,則認(rèn)為所有輸入的字符均為有效字符。
參考資料:
總結(jié)
以上是生活随笔為你收集整理的c语言中gets函数可以输入空格吗_C语言中scanf()与gets()函数的区别,哪一个可以读入空格啊?...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python写接口自动化需要rsa加密_
- 下一篇: editplus行转列_EditPlus