2016-03-18 109 views
-3

我似乎無法讓這個程序正常工作。我可以讓它接受兩個整數並將它們打印到屏幕上。但是我不能讓程序終止,當'|'用來。一旦它進入它無限循環。這裏是我到目前爲止的代碼:編程原理與實踐:第4章練習第1部分

#include "../../std_lib_facilities.h" 

int main() 
{ 
    int num1 = 0; 
    int num2 = 0; 
    char counter = '\0'; 

    cout << "Please enter two integers and press enter. \n"; 

    bool test = true; 
    while (counter != '|') 
    { 
     cin >> num1 >> num2; 
     cout << "Your numbers are: " << num1 << " " << num2 << endl; 
     if (cin.fail()) 
     { 
      cout << "Goodbye!\n"; 
      test = false; 
     } 
     else (counter != '|'); 
     cout << "Enter more numbers or press '|' to exit.\n"; 
    } 

    system("pause"); 

} 
+1

你的'while'循環不會改變'counter',那麼你爲什麼認爲它應該按照你描述的方式工作? –

+0

另外'else(counter!='|');'不會導致輸入更多數字或按'|'退出.'始終顯示。 –

+0

請在標題中說明(或刪除)「PPP」。 –

回答

0

您在while循環中使用了錯誤的條件。你永遠不會改變counter,所以循環永遠不會結束。但是,如果輸入失敗,則在while循環中確實將test更改爲false。您可以更改while循環的條件下使用,而不是test

while(test) 
{ 
    //... 
} 

由於counter不再被使用,你可以擺脫它完全。

請注意,除非您更改爲接受字符串並解析輸入,否則將導致cin失敗的任何輸入將結束循環而不僅僅是|

+0

這幫助我讓程序終止。櫃檯我只是忘記了它在那裏,我嘗試了幾種不同的解決方案,並在一點上讓事情變得有點複雜。謝謝您的幫助。 –

相關問題