這個程式為什麼輸入數字就是正常的,但輸入字元就會陷入死迴圈!望高手指點

時間 2021-06-25 14:57:08

1樓:匿名使用者

建議用rewind或做如下改,已測試通過

c語言中fflush(stdin)作用**)#include

#include

int menu_select();

int main() }

//the end

return 0;

} int menu_select()

2樓:匿名使用者

在scanf("%d",&cn);的後面加上fflush(stdin);來清空輸入快取。否則每次scanf都會失敗的。你沒有判斷scanf的返回值,如果判斷了你會發現scanf每次都返回0,這是失敗的。

因為型別不匹配。

因為scanf返回0,因此cn的值是堆疊中的隨機值,所以很難等於3.

-------------------------誰說fflush不是c標準來的?它的實現的確根據庫實現決定的。但在windows下,if the stream is open for input, fflush clears the contents of the buffer.

3樓:匿名使用者

#include

int menu_select();

int main() }

//the end

return 0;

} int menu_select()

4樓:圓喜

fflush(stdin);

scanf("%d", &cn);

在你的scanf前加一句,清空輸入流快取

因為scanf遇到格式不匹配的字元,它就不從輸入流中取走那個字元,那個字元一直存在流中,第二次迴圈回來它還讀那個字元,還是出錯,還不取走,這樣就死迴圈了,清空流就沒事了。

5樓:匿名使用者

default:

printf("your input is illegal!\n");

break;

6樓:匿名使用者

返回值是0和迴圈有何關係?int menu_select() 的返回值是啥?高手請解釋

7樓:

printf("your input is illegal!\n");

在這一句後加一個getchar();就可以了。

手機輸入法拼音出數字,為什麼搜狗手機輸入法拼音輸入出現數字

暴風之眼鏡 可能是你手機按鍵沒設定好,就跟筆記本鍵盤有美式輸入和日式輸入法一樣有個切換,要麼就是這個輸入法軟體本身有問題,中病毒了,或者軟體程式錯誤等,你換個其他輸入法試一次就知道了 你還是到維修部修一下 緣何迷茫 長按拼音鍵或按住上滑拼音鍵可以輸入該鍵上對應的字母和數字。這是正常的功能不是毛病。如...

明明網路正常,線路正常,為什麼電腦就是上不了網,我家用的是路由器,但是設定沒問題,昨天上午都還在用

看看路由器的設定吧。首先看你本機是不是獲得了ip 如果可以,看看qq 能用不,如果qq可以,那要看看你的dns解析了。 靈狐小馬 你的手機能上,說明路由器沒有問題,那麼問題肯定在路由器到電腦這裡 1 檢查電腦的網路設定,是不是自動獲得ip地址。2 檢查電腦的網絡卡驅動是不是正確,計算機右鍵 管理 裝...

excel裡我輸入的數字為什麼在框的右邊,數字長的直接變成這樣了1 32325E 15原來的是

在框的右邊是對齊的原因,你按ctrl a,然後在對齊那裡點居中對齊,資料顯示不全,是因為格式不對,可以在點格式,選擇單元格,在彈出的對話方塊中選擇數字,小數點可以按需要來保留,一般預設是2位,然後再選擇對齊,水平和垂直對齊選居中或你想要的效果,點確定,注意 輸入的資料不要超過15位,否則15位之後的...