C ++ Как проверить номер входа из Shell?

0

ниже мой C++ код:

void test(int array[], int length) {
    int index;  // the index of heap array that human want to modify
    int num;  // the number of heap in the index position
    cout << "input the index and num" << endl << flush;
    string si,sj;
    try{
        cin >> si >> sj;
        index = stoi(sj);
        num = stoi(si);
    }catch(std::exception e){
        cout << "error, try again" << endl;
        test(array, length);
    }
    if (index <= length && index > 0 && num > 0 && num <= array[index - 1]) {
        array[index - 1] -= num;
        // print(array, length);
    } else {
        cout << "error, try again" << endl;
        test(array, length);
    }
}

И теперь есть оболочка для запуска этого кода, но в оболочке есть вход, как показано ниже:

введите индекс и номер 2 1

это правильный

введите индекс и номер 2

у него просто 1 значение, и программа заблокирована здесь, чтобы ждать другого ввода, я должен понять это и вывести "ошибку, попробуйте еще раз",

введите индекс и число 1 2 3

это также неверно, потому что имеется более 2 входных значений. то же самое, я должен понять, что выход и выход "ошибка, попробуйте еще раз"

Как с этим бороться?

Теги:
input
parameters
command

1 ответ

2
Лучший ответ

cin.getline вы должны использовать cin.getline для ввода.

Затем разделите строку на подстроки и подсчитайте их.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню