C++: Infinite loop with a simple menu selection

2019-03-06 13:36发布

The script I am working on is over a page long, so I am going to link it (one simple file):
http://pastebin.com/7BVHmQGp

I apologize for that. My problem is I get into an infinite loop in my code, for example after I select 1 or 2 for encrypting/unencrypting it lets me enter the word, and when I next enter the "shift" for the cipher it runs an infinite loop of the menu.

I had tried for so many hours to debug this, I thought it was a problem with cin, for example when you enter an invalid choice it just throws an infinite loop/

What seems to cause the infininte loops?

3条回答
够拽才男人
2楼-- · 2019-03-06 14:18

This page should explain all you need to know.

查看更多
不美不萌又怎样
3楼-- · 2019-03-06 14:25

I think you should be ignoring the newline character instead of a space

I tried with the following and it works on VS2010

    cin.ignore(1, '\n');
    getline(cin, input);
查看更多
贪生不怕死
4楼-- · 2019-03-06 14:30

Try cin.clear, I believe you are constantly reading your initial input character.

    cin >> selection;
    cin.clear(); 
查看更多
登录 后发表回答