piscine_cpp/cpp00/ex01/sources/main.cpp
2024-10-20 21:38:50 +02:00

63 lines
2.1 KiB
C++

/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* main.cpp :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: rparodi <rparodi@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/10/17 14:55:18 by rparodi #+# #+# */
/* Updated: 2024/10/20 21:38:07 by rparodi ### ########.fr */
/* */
/* ************************************************************************** */
#include "phonebook.hpp"
/**
* @brief return the input with std::getline()
*
* @param err_msg The message return in case of error
* @return the value of input
*/
std::string get_input(const char *err_msg, std::string file, int line)
{
std::string input;
try
{
if (!std::getline(std::cin, input))
throw std::runtime_error("getline can't read the input !\n");
else if (input.empty())
throw std::runtime_error("The input can't be empty !\n");
}
catch (const std::exception& err)
{
std::cerr << CLR_BOLD_RED << "\nError:\t" << err.what() << CLR_RESET << CLR_RED << "(" << err_msg << " [" << file << ":" << line << "]" << ")" << CLR_RESET << std::endl;
exit(1);
}
return (input);
}
int main()
{
std::string input;
PhoneBook phonebook;
size_t i = 0;
while (true)
{
std::cout << MENU << std::endl;
input = get_input("Main menu", __FILE_NAME__, __LINE__);
if (strcmp(input.c_str(), "ADD") == 0)
{
if (phonebook.array_contact[i].init_new(i) == true)
i++;
}
if (strcmp(input.c_str(), "SEARCH") == 0)
phonebook.search(i);
if (strcmp(input.c_str(), "EXIT") == 0)
{
std::cout << CLR_LIGHT_RED << "Leaving the program..." << CLR_RESET << std::endl;
exit(1);
}
}
}