Прошу прощения, если этот вопрос немного длинный. Я постараюсь держать его коротким, но кратким.C++ Преобразование различных типов в строку Временно
Я создаю основную программу для начального уровня курса C++, где я создаю макетную версию управления сотрудниками для склада. Общая форма заключается в том, что пользователю предлагается ввести ввод, чтобы выбрать тип сотрудника, а затем, на основе ввода, затем предлагается ввести данные сотрудника, относящиеся к типу сотрудника.
В связи с этим существуют функции, которые принимают входные данные как int, float, string и char. У меня есть отдельная функция меньшего размера, которая проверяет «выход» на вход и выходит из программы, если это правда. В настоящее время я сконструирован таким образом, что все входы классифицируются как строки, но это, очевидно, вызывает проблемы позже, когда я пытаюсь приравнять значения численно.
Вот моя текущая версия функции проверки и один из введенных пользователем функций:
//Current add_employee function
void add_employee()
{
string emp_type = "";
bool exit_check;
cout << "Please select employee type. Enter 1 for Manager or 2 for Dockhand." << endl;
getline(cin, emp_type);
if(name.empty())
{
cout << "Cannot accept empty field as input. Please answer with 1 for Manager, or 2 for Dockhand." << endl;
add_employee();
}
exit_check = check_input(emp_type);
if(exit_check == true)
{
return;
}
if(emp_type == "1")
{
add_manager;
}
else if(emp_type == "2")
{
add_dockhand;
}
else
{
cout << "Sorry. Your input is invalid. Please answer with 1 for Manager, or 2 for Dockhand." << endl;
add_employee();
}
}
//Current check function
bool check_input(string input_var)
{
if(input_var == "exit")
{
return true;
}
else
{
return false;
}
}
Что касается моего вопроса. Есть ли относительно простой способ сохранить структуру моего кода, взяв ввод как int, а затем преобразовать его в строку, чтобы проверить «exit», но также иметь вход, все еще считающийся int, если значение exit_check ложно? Я думал о том, что входные данные назначены двум переменным, но это казалось пустой тратой кода.
Пожалуйста, дайте мне знать, если что-то имеет смысл, и я отредактирую его в OP.
Не уверен, что вы подразумеваете под этим?Это гораздо больше, чем просто для всей программы, но не было смысла копировать все это в вопрос, когда двух функций достаточно, чтобы показать, что я имею в виду. –
Почему вы хотите использовать строку для проверки типа сотрудника? Вы можете напрямую сравнивать типы int и назначать определенное целое для выхода. –
@Raul Это то, чем мой первоначальный проект был, но тогда я не смог получить функцию check_input, чтобы проверить вход «exit». Я пытался настроить его таким образом, чтобы функция check_input могла использоваться после каждого этапа ввода, поэтому мне не приходилось копировать код каждый раз. Не все пользовательские входы будут одного типа. –