Я предполагаю, что в GCC есть ошибка, связанная с использованием std :: cin и установкой / снятием точек останова.Я сделал минимальный пример:
#include <iostream>
#include <string>
using namespace std;
int main(int argc, char* argv[])
{
string option = "x";
while (option != "q")
{
cout << endl
<< "0 = Stop" << endl
<< "1 = Play" << endl
<< "q = Quit" << endl;
getline(cin, option);
cout << "You choosed " << option << endl;
}
}
Этот код прекрасно работает, пока вы не установите или не активируете точку останова (по крайней мере, с помощью оболочки XCode).С тех пор буфер stdin разрушается, и каждый getline () извлекает последний ввод, даже если вы не вводите ключ, вводя бесконечный цикл.
Я не знаю, как его обойти ...: - (