c语言 getchar_C语言gets输入问题
生活随笔
收集整理的這篇文章主要介紹了
c语言 getchar_C语言gets输入问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#C語言初學#前幾天敲代碼總有個問題,在C語言編譯器中我用gets函數錄入字符串時怎么都錄不進去,好像就跳過了輸入這個步驟。
代碼:scanf("%d",&a);
gets(str);
問題來了,你在scanf時輸入時候是敲了一個回車的,回車符號是沒有別錄入的,它就被gets輸入。
所以gets是沒有執行你想要的功能的。
那時候不知道,我的天頭皮都抓光了,去網上查資料,開頭幾個鏈接永遠是廣告。看了一天的書才發現有輸入緩存這東西,你在C語言重鍵盤輸入的都會放在一個輸入緩存文件里,gets和scanf等輸入語句都是從里面相當于拿出來。stdin就是這差不多這文件的名字,可以在scanf后面加一個fflush(stdin)。
代碼: scanf("%d",&a);
fflush(stdin)
gets(str);
它的功能就是清空輸入緩存就不會被那個沒有輸入的回車符影響了。當然還可以直接把回車符處理了,加個getchar,
代碼: scanf("%d",&a);
getchar();
gets(str);
它是輸入一個字符,放在scanf后面就相當于把那個回車吃了就不被他干擾了。
代碼初學者,有解釋錯的
可要說出來喲,學嘛
總結
以上是生活随笔為你收集整理的c语言 getchar_C语言gets输入问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html樱花飘落代码_爱心飘落特效
- 下一篇: pcie ep 应该支持哪种interr