我是一個新手(開始學習編碼就像2周前),我真的很感謝一些幫助,以解釋爲什麼我的代碼不工作。 我寫了一個簡單的代碼來計算概率。這不是非常重要的部分。該代碼需要一些用戶輸入,所以爲了使它有點簡單,我寫了兩個if語句來處理各種錯誤的輸入(錯誤的數據類型,數字太高,數字太低)以拋出錯誤消息並終止程序。如果輸入正確(意味着if語句的條件都不成立),它應該調用函數diceTwo(des)。 但是,如果我輸入數字8 - 哪一個應該是好的 - 出於某種原因我無法弄清楚 - 如果語句觸發數字太高/低,所以無論輸入什麼數字,該函數都不會被調用。C++如果語句行爲不正確
cin >> des;
if (cin.fail())
{
cin.clear();
cin.ignore(100, '\n');
cout << "Invalid input! Use only whole positive numbers!" << endl;
cout << "Try again." << endl;
return -1;
}
if (des> 12 || des< 1);
{
cout << "Invalid input!" << endl;
cout << "Remember the only possible values are from 2 to 12!" << endl;
cout << "Try again." << endl;
return -1;
}
diceTwo(des);
cout << "The probability of this roll is " << x << "%" << endl;
這是造成麻煩的部分。我已經嘗試將有問題的if語句拆分爲兩個(一個用於< 1,一個用於> 12),或者添加一個新的if語句以用於調用該函數,但它們都不起作用。我曾經和if語句一起提供了幾次前用戶輸入的萬無一失,總是運行良好,所以我真的無法找到這次發生了什麼問題。任何人都可以告訴我如何修復它?
你知道,'「n''是不一樣的東西'」 \ n'',對不對? –
我們需要足夠的代碼來重現問題。我們甚至不能說「des」是一個「int」,「float」,「std :: string」還是什麼。 –
@SamVarshavchik是的,當然,對不起,我的壞,我正在刪除cout句子的一些部分(包括\ n)以簡化代碼,因爲我把它放在這裏,並可能錯誤地刪除了'\'。在我原來的代碼中是'\ n'。我會在這裏編輯它。 – InsaneNewbie