2010-12-03 115 views
0

我工作的腳本是在很長的網頁,所以我要鏈接它(一個簡單的文件):
http://pastebin.com/7BVHmQGpC++:無限循環用一個簡單的菜單選擇

我爲此道歉。我的問題是我在我的代碼中進入了一個無限循環,例如在我選擇1或2進行加密/解密後讓我輸入單詞,當我下一次輸入密碼「shift」時,它會運行一個無限循環菜單。

我試過這麼多小時來調試這一點,我認爲這是與cin一個問題,例如,當你輸入一個無效的選擇,它只是拋出一個無限循環/

什麼似乎引起infininte循環?

+0

也許你需要使用char c; cin.get(C);你必須在 – GWW 2010-12-03 03:02:30

+0

之後將它轉換爲整數。我認爲它是std :: string too ..如果它每次都這樣做,我很難接受它的使用。 – 2010-12-03 03:08:28

回答

1

我想你應該忽略換行符,而不是一個空間

我用下面的嘗試和它VS2010工作

cin.ignore(1, '\n'); 
    getline(cin, input); 
+0

不幸的是,我試圖在他們之前追加它,並且它再次無限循環。 :(我甚至在所有的`cin`之前都試過了,這太混亂了! – 2010-12-03 03:20:14

0

嘗試cin.clear,我相信你不斷地閱讀你的初始輸入字符。

cin >> selection; 
    cin.clear(); 
0

This page應解釋所有你需要知道的。