Завершение программы при достижении getline - PullRequest
0 голосов
/ 06 мая 2020

Я использую C ++ для этой программы, но каждый раз, когда программа достигает getline(cin, orders), она завершается с "Process finished with exit code 11". Я не могу понять, почему getline() не читает строку. Я пробовал использовать cin.ignore();, но это не сработало.

Это часть моего кода:

while (cin >> tableNum){
    cin >> input;
    if (input[0] == 'P'){

        partyNum = stoi(input.substr(1));

        if (partyNum > tables[tableNum].getMaxSeats())
            cout << "Sorry, max " << tables[tableNum].getMaxSeats() << " in Table " << tableNum << "!" << endl;

        else if (tables[tableNum].getStatus() == IDLE){
            tables[tableNum].setPartyNum(partyNum);
            tables[tableNum].setStatus(SEATED);
            cout << "Party of " << partyNum << " assigned to Table " << tableNum << endl;
            continue;
        }

        else
            cout << "Table " << tableNum << " already occupied!" << endl;
    }
    if (input == "O"){
        cout << "hi";
        getline (cin, orders);

        if (tables[tableNum].getStatus() == SEATED) {
            orderItems = tables[tableNum].setPartyOrder(orders);
            cout << orderItems << " items ordered for Table " << tableNum << endl;
        }

Вот пример экрана ввода и вывода:

1 P2
Party of 2 assigned to Table 1
1 O C3
hi
Process finished with exit code 11
...