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

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

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

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

搞了半天,oppo的手機,開啟設定 其他設定 鍵盤和輸入法 預設,裡面有360演示鍵盤和酷狗輸入法,勾選360演示鍵盤。再勾回酷狗輸入法,就好了,剛剛親測,也是一大早起來煩的要死,後來試出來的 我剛剛手機也這樣了。輸入拼音出來都是對應的數字。看了網上很多方法都沒用,解除安裝重灌簡單粗暴卻很有效!在手...

為什麼我的ecel輸入數字是會變

方法1 在輸入前先輸入英文半形下的 然後再輸入資料即可。方法2 選中該列 滑鼠右鍵 選擇單元格格式 數字 文字 確定即可。然後輸入就會正常。把單元格拉長就行了,變成你說的那種是16進位制的字元!或者把單元格格式變成文字也行!很簡單的。這樣做 右鍵單擊你想改變的單元格 選擇 設定單元格格式 在 數字 ...

為什麼EXCEL裡面輸入數字後會自動退至小數點後兩位

1 這是因為單元格copy設定了兩位有效數字導致的。你設定了 工具,選項,編輯,自動設定小數點位數為0,所以出現這個情況,取消該設定即可恢復正常。2 設定方法如下,首先選中需要錄入資料的單元格區域,開啟 設定單元格格式 對話方塊,在 數字 選項卡中選擇 數值 小數位數選2,確定,再此區域中錄入數字後...