#include "PhoneBook.hpp" #include "Contact.hpp" # include # include # include # include PhoneBook::PhoneBook(void) { size = 0; index = 0; std::cout << "New PhoneBook" << std::endl; } std::string write_read(std::string text) { std::string input; while (input.size() == 0) { std::cout << text; if (!std::getline(std::cin, input)) exit(0); } return (input); } void PhoneBook::add(void) { std::string fname; std::string lname; std::string nname; std::string phnbr; std::string drksct; fname = write_read("firstname:"); lname = write_read("lastname:"); nname = write_read("nickname:"); phnbr = write_read("phone number:"); drksct = write_read("darkest secret:"); Contact contact; contact = Contact(fname, lname, nname, phnbr, drksct); contact_list[index % 8] = contact; index++; if (size < 8) size++; std::cout << "The contact has been added." << std::endl; } bool isDigital(std::string str) { for (unsigned long i = 0; i < str.size(); i++) { if (!isdigit(str[i])) { return false; } } return true; } void PhoneBook::search(void) { if (size == 0) { std::cout << "No contact" << std::endl; return ; } for (int i = 0; i < size; i++) { std::string info[3]; std::string list_info[3] = {contact_list[i].getFname(), contact_list[i].getLname(), contact_list[i].getNname()}; for (int y = 0; y < 3; y++) { info[y] = list_info[y].substr(0, 10); if (list_info[y].size() > 10) info[y][9] = '.'; } std::cout << std::left << std::setw(10) << i; std::cout << " | "; std::cout << std::left << std::setw(10) << info[0]; std::cout << " | "; std::cout << std::left << std::setw(10) << info[1]; std::cout << " | "; std::cout << std::left << std::setw(10) << info[2]; std::cout << "\n"; } std::string input; while (input.size() == 0) { std::cout << "index:"; if (!std::getline(std::cin, input)) return ; } if (!isDigital(input)) { std::cout << "Error index" << std::endl; return ; } int index = std::atoi(input.c_str()); if (index > 7 || !contact_list[index].getInit()) { std::cout << "Out of range" << std::endl; return ; } std::cout << "lastname: " + contact_list[index].getFname() << std::endl; std::cout << "lastname: " + contact_list[index].getLname() << std::endl; std::cout << "nickname: " + contact_list[index].getNname() << std::endl; std::cout << "phone number: " + contact_list[index].getPhnbr() << std::endl; std::cout << "darkest secret: " + contact_list[index].getDrksct() << std::endl; }