簡體   English   中英

cin.fail錯誤處理問題

[英]cin.fail error handling issues

我有一個小程序,我想評估輸入。 N變量的輸入只能是1到2000之間的數字。現在,如果我輸入正確/不正確的數字,但當我輸入一些隨機字母時,下面編寫的代碼可以正常工作(我必須確保只有數字,所以如果有人輸入字母,我必須處理),提示被寫出的數量是我輸入的字母的多少倍,而我只希望它被輸出一次。 因此,如果我寫34,它就可以工作。 如果我寫3355453,則會檢查輸入內容,並提示用戶輸入1到2000之間的數字。當我寫字母“ x”時,輸入內容會被檢查,並提示用戶輸入數字再次介於1到2000之間,但是如果我寫了更多字母,例如xxxx-提示符出現4次而不是1次。 如果我輸入7個字母,道具將出現7次。 有什么辦法解決這個問題? 謝謝!

do {
  cout << "Please put in a number between 1 and 2000."   <<     endl;
  cin >> N;

  if(cin.fail() || N<1 || N>2000){
    cin.clear();
    cin.ignore();
  }
} while(cin.fail() || N<1 || N>2000);

cin.ignore()替換為cin.ignore() cin.ignore(INT_MAX, '\\n');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM