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

2021-06-25 14:59:32 字數 1277 閱讀 7872

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();就可以了。

為什麼我家搜狗輸入法輸入英文或數字時中間會有空格啊

你開啟了輸入法的全形輸入。用shift 空格切換到半形就可以了。全形 a a a a a 半形 aaaaa 為什麼我的搜狗拼音輸入法輸入數字和英文時總是有空格 比如 zhaoliruize 你在設定選項裡應該有個輸入完成追加空格選項,看一下是不是那個打勾了,去掉就可以了吧 選擇半形,就可以了。以我的...

裡面輸入數字和字母為什麼隔得很大

在word裡面輸入來數字和 字母若隔得很源大,可以通過下面bai的方法使du其恢復正常,具體的操作步驟 zhi 1 選中需 dao要調整的文字 2 單擊開始選項卡右下角如圖所示的按鈕 3 彈出段落對話方塊,選擇中文版式選擇卡,在換行處,選中允許西文在單詞中間換行核取方塊即可,如圖所示。把輸入法從全形...

為什麼excel輸入數字會變?怎麼設定才能解決

atm半夏熒光 excel輸入數字會變是因為格式錯誤,重新設定成文字格式即可.可能設定成時間格式了吧,根據你實際需要的格式設定一下行列或單元格的格式型別就可以了。excel是微軟出品的office系列辦公軟體中的一個元件,excel的中文含義就是 超越 確切地說,它是一個電 軟體,可以用來電 可能設...