Вместо того, чтобы позволять пользователю вводить два значения в одной строке, запрашивайте у пользователя каждый ввод.
std::cout << "Enter the first value and press ENTER: ";
std::cin >> value1;
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
std::cout << "Enter second value and press ENTER: ";
std::cin >> value2;
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
Это позволит пользователю знать, что он должен ввести два значения, и вы знаете, что у вас будет два значения. Вызов ignore
должен пропустить возможные ненужные данные, которые пользователь записывает после значения.
Вы также должны убедиться, что пользователь дал вам действительные значения, и если нет, то попросите пользователя снова ввести значения.