diff --git a/ex01/src/Contact.cpp b/ex01/src/Contact.cpp index d69b827..e138055 100644 --- a/ex01/src/Contact.cpp +++ b/ex01/src/Contact.cpp @@ -6,7 +6,7 @@ /* By: whaffman +#+ */ /* +#+ */ /* Created: 2025/03/20 10:44:49 by whaffman #+# #+# */ -/* Updated: 2025/03/31 14:40:31 by whaffman ######## odam.nl */ +/* Updated: 2025/04/01 11:46:24 by whaffman ######## odam.nl */ /* */ /* ************************************************************************** */ @@ -20,6 +20,21 @@ Contact::Contact(const std::string &fn, const std::string &ln, const std::string : firstName(fn), lastName(ln), nickname(nn), phoneNumber(pn), darkestSecret(ds) {} +void getInput(std::string &input, const std::string &prompt, bool isRequired) +{ + + std::cout << std::setw(16) << prompt; + std::getline(std::cin, input); + if (isRequired && input.empty()) + { + while (input.empty()) + { + std::cout << "This field is required. Please enter a value: "; + std::getline(std::cin, input); + } + } +} + Contact Contact::newContact() { std::string firstName; @@ -29,17 +44,13 @@ Contact Contact::newContact() std::string darkestSecret; std::cout << "---------------------------------------------" << std::endl; - std::cout << "Enter the contact information:" << std::endl << std::endl; - std::cout << std::setw(16) << "first name: "; - std::getline(std::cin, firstName); - std::cout << std::setw(16) << "last name: "; - std::getline(std::cin, lastName); - std::cout << std::setw(16) << "nickname: "; - std::getline(std::cin, nickname); - std::cout << std::setw(16) << "phone number: "; - std::getline(std::cin, phoneNumber); - std::cout << std::setw(16) << "darkest secret: "; - std::getline(std::cin, darkestSecret); + std::cout << "Enter the contact information: (firstname and phonenumber are required)" << std::endl << std::endl; + getInput(firstName, "First name: ", true); + getInput(lastName, "Last name: ", false); + getInput(nickname, "Nickname: ", false); + getInput(phoneNumber, "Phone number: ", true); + getInput(darkestSecret, "Darkest secret: ", false); + std::cout << std::endl; std::cout << "---------------------------------------------" << std::endl; return (Contact(firstName, lastName, nickname, phoneNumber, darkestSecret)); diff --git a/ex01/src/PhoneBook.cpp b/ex01/src/PhoneBook.cpp index 39ca69a..fa160ec 100644 --- a/ex01/src/PhoneBook.cpp +++ b/ex01/src/PhoneBook.cpp @@ -6,7 +6,7 @@ /* By: whaffman +#+ */ /* +#+ */ /* Created: 2025/03/20 11:02:32 by whaffman #+# #+# */ -/* Updated: 2025/04/01 09:17:51 by whaffman ######## odam.nl */ +/* Updated: 2025/04/01 11:51:53 by whaffman ######## odam.nl */ /* */ /* ************************************************************************** */ @@ -104,7 +104,7 @@ void PhoneBook::searchContact() const std::cout << "---------------------------------------------" << std::endl; int index = -1; - std::cout << "Enter the index of the contact you want to see: "; + std::cout << "Enter the index of the contact to see details: (Or EXIT to return to menu) "; while (index < 0) { @@ -112,9 +112,14 @@ void PhoneBook::searchContact() const std::cout << std::endl; if (command == "EXIT") return; + if (command.empty()) + { + std::cout << "No input. Please enter a number: "; + continue; + } if (!isNumeric(command)) { - std::cout << "Invalid index. Please enter a number: "; + std::cout << "Input is not numeric. Please enter a number: "; continue; } index = std::stoi(command);