c语言 getchar_C语言gets输入问题
#C語(yǔ)言初學(xué)#前幾天敲代碼總有個(gè)問(wèn)題,在C語(yǔ)言編譯器中我用gets函數(shù)錄入字符串時(shí)怎么都錄不進(jìn)去,好像就跳過(guò)了輸入這個(gè)步驟。
代碼:scanf("%d",&a);
gets(str);
問(wèn)題來(lái)了,你在scanf時(shí)輸入時(shí)候是敲了一個(gè)回車的,回車符號(hào)是沒(méi)有別錄入的,它就被gets輸入。
所以gets是沒(méi)有執(zhí)行你想要的功能的。
那時(shí)候不知道,我的天頭皮都抓光了,去網(wǎng)上查資料,開(kāi)頭幾個(gè)鏈接永遠(yuǎn)是廣告。看了一天的書(shū)才發(fā)現(xiàn)有輸入緩存這東西,你在C語(yǔ)言重鍵盤(pán)輸入的都會(huì)放在一個(gè)輸入緩存文件里,gets和scanf等輸入語(yǔ)句都是從里面相當(dāng)于拿出來(lái)。stdin就是這差不多這文件的名字,可以在scanf后面加一個(gè)fflush(stdin)。
代碼: scanf("%d",&a);
fflush(stdin)
gets(str);
它的功能就是清空輸入緩存就不會(huì)被那個(gè)沒(méi)有輸入的回車符影響了。當(dāng)然還可以直接把回車符處理了,加個(gè)getchar,
代碼: scanf("%d",&a);
getchar();
gets(str);
它是輸入一個(gè)字符,放在scanf后面就相當(dāng)于把那個(gè)回車吃了就不被他干擾了。
代碼初學(xué)者,有解釋錯(cuò)的
可要說(shuō)出來(lái)喲,學(xué)嘛
總結(jié)
以上是生活随笔為你收集整理的c语言 getchar_C语言gets输入问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: html樱花飘落代码_爱心飘落特效
- 下一篇: python项目如何打开_python如