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

2021-06-25 14:59:33 字數 1277 閱讀 1253

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

在ecel中為什麼輸入超過數字後面的數字就自動

因為excel只支援15位數1.選中要輸入數字的單元格,點右鍵選單選擇 設定單元格格式 也可以點 格式 選擇 單元格 或按ctrl 1 出現單元格格式對話方塊,點 數字 在分類選擇 文字 按 確定 2.在a1單元輸入數字時,在前面先輸入 號 英文狀態下的引號 就是 123456789012345,這...

excel中為什麼輸入數字顯示不出來,什麼原因,設定單元格格式也不管用

原因有2種可能 1種是這個單元格設定了條件格式,另外一種原因是你的單元格格式沒有設定對。解決方法如下 1 開啟你所要輸入數字的excel 首先選中要設定格式的單元格。2 在選中的單元格上右擊,在彈出的右鍵選單中選擇 設定單元格格式 3 在彈出的 單元格格式 對話方塊中,選擇 數字 選項卡,再選擇分類...

為什麼excel中工作表中輸入數字自動變成日期

excel中的日期其本質也是數值進行換算得來的,所以如果單元格格式非日回期格式時,答如常規或數字時,會顯示數字,同樣的,如果單元格格式為日期格式,而輸入數字,同樣會顯示出日期。1 演示使用的辦公軟體為office excel,所使用的版本為microsoft office家庭和學生版2016。2 開...