cpp-partie-1/cpp00/ex01/Contact.cpp
2024-02-20 15:35:19 +01:00

97 lines
2.9 KiB
C++

/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* Contact.cpp :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: fgras-ca <fgras-ca@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2023/12/23 17:17:14 by fgras-ca #+# #+# */
/* Updated: 2023/12/23 20:52:55 by fgras-ca ### ########.fr */
/* */
/* ************************************************************************** */
#include "Contact.hpp"
Contact::Contact() {}
void Contact::SetDetails()
{
std::cout << "First Name: ";
std::cin >> _first_name;
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
std::cout << "Last Name: ";
std::cin >> _last_name;
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
std::cout << "Nickname: ";
std::cin >> _nickname;
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
while (true)
{
std::cout << "Phone Number: ";
std::cin >> _phone_number;
bool isValid = true;
for (char c : _phone_number)
{
if (!std::isdigit(c))
{
isValid = false;
break;
}
}
if (isValid)
{
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
break;
}
else
{
std::cout << "Invalid input. A phone number should contain only digits (0-9)." << std::endl;
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
}
}
std::cout << "Darkest Secret: ";
std::getline(std::cin, _darkest_secret);
}
Contact::~Contact() {}
void Contact::DisplaySummary(int index) const
{
std::string redBar = "\033[31m|\033[0m";
std::cout << std::setw(8) << index << redBar;
if (_first_name.length() > 10)
{
std::cout << std::setw(10) << _first_name.substr(0,9) + "." << redBar;
}
else
{
std::cout << std::setw(10) << _first_name << redBar;
}
if (_last_name.length() > 10)
{
std::cout << std::setw(10) << _last_name.substr(0,9) + "." << redBar;
}
else
{
std::cout << std::setw(10) << _last_name << redBar;
}
if (_nickname.length() > 10)
{
std::cout << std::setw(10) << _nickname.substr(0,9) + "." << redBar;
}
else
{
std::cout << std::setw(10) << _nickname << redBar;
}
std::cout << std::endl;
}
void Contact::DisplayDetails() const
{
std::cout << "First Name: " << _first_name << std::endl;
std::cout << "Last Name: " << _last_name << std::endl;
std::cout << "Nickname: " << _nickname << std::endl;
std::cout << "Phone Number: " << _phone_number << std::endl;
std::cout << "Darkest Secret: " << _darkest_secret << std::endl;
}