From 1a1074a7c832f26f4be6426a1077d4741c68e137 Mon Sep 17 00:00:00 2001 From: Hugo LAMY Date: Wed, 16 Feb 2022 19:41:53 +0100 Subject: [PATCH] d00 ex01 phonebook resolu pbms --- d00/ex01/Contact.class.cpp | 28 +++++++++++------- d00/ex01/Contact.class.hpp | 12 ++++---- d00/ex01/PhoneBook.class.cpp | 49 ++++++++++++++++++-------------- d00/ex01/builds/Contact.class.o | Bin 8888 -> 9352 bytes d00/ex01/builds/main.o | Bin 5424 -> 5592 bytes d00/ex01/main.cpp | 2 +- d00/ex01/phonebook | Bin 29560 -> 34088 bytes 7 files changed, 54 insertions(+), 37 deletions(-) diff --git a/d00/ex01/Contact.class.cpp b/d00/ex01/Contact.class.cpp index d23bcec..9f0d6ad 100644 --- a/d00/ex01/Contact.class.cpp +++ b/d00/ex01/Contact.class.cpp @@ -14,16 +14,24 @@ Contact::~Contact( void ) { } // ADD -void Contact::add_first( std::string str ) {this->first.assign(str);} -void Contact::add_last( std::string str ) {this->last.assign(str);} -void Contact::add_nick( std::string str ) {this->nick.assign(str);} -void Contact::add_num( std::string str ) {this->num.assign(str);} -void Contact::add_secret( std::string str ) {this->secret.assign(str);} +void Contact::add_first( std::string str ) {this->_first.assign(str);} +void Contact::add_last( std::string str ) {this->_last.assign(str);} +void Contact::add_nick( std::string str ) {this->_nick.assign(str);} +void Contact::add_num( std::string str ) {this->_num.assign(str);} +void Contact::add_secret( std::string str ) {this->_secret.assign(str);} // GET -std::string Contact::get_first( void ) {return first;} -std::string Contact::get_last( void ) {return last;} -std::string Contact::get_nick( void ) {return nick;} -std::string Contact::get_num( void ) {return num;} -std::string Contact::get_secret( void ) {return secret;} +std::string Contact::get_first( void ) {return _first;} +std::string Contact::get_last( void ) {return _last;} +std::string Contact::get_nick( void ) {return _nick;} +std::string Contact::get_num( void ) {return _num;} +std::string Contact::get_secret( void ) {return _secret;} +// CLEAR +void Contact::clear_contact() { + this->_first.clear(); + this->_last.clear(); + this->_nick.clear(); + this->_num.clear(); + this->_secret.clear(); +} diff --git a/d00/ex01/Contact.class.hpp b/d00/ex01/Contact.class.hpp index e27aabd..9dd9823 100644 --- a/d00/ex01/Contact.class.hpp +++ b/d00/ex01/Contact.class.hpp @@ -23,15 +23,17 @@ public: std::string get_num(); std::string get_secret(); + void clear_contact(); + void print_contact(); private: - std::string first; - std::string last; - std::string nick; - std::string num; - std::string secret; + std::string _first; + std::string _last; + std::string _nick; + std::string _num; + std::string _secret; }; diff --git a/d00/ex01/PhoneBook.class.cpp b/d00/ex01/PhoneBook.class.cpp index 7b930c5..b2712ea 100644 --- a/d00/ex01/PhoneBook.class.cpp +++ b/d00/ex01/PhoneBook.class.cpp @@ -16,51 +16,55 @@ void PhoneBook::add_contact() { std::string str; int it; - this->_contact_count++; - it = this->_contact_count; - if (it > 8) - it = 1; - it--; + it = this->_contact_count % 8; + this->_contact[it].clear_contact(); std::cout << B_CYAN "enter a first name pliz :" << std::endl; - while (_contact[it].get_first().length() == 0) + while (this->_contact[it].get_first().length() == 0) { std::cout << B_BLUE "-> " RESET; - std::getline(std::cin, str); + if (!std::getline(std::cin, str)) + return; this->_contact[it].add_first(str); } std::cout << B_CYAN "enter a last name pliz :" << std::endl; - while (_contact[it].get_last().length() == 0) + while (this->_contact[it].get_last().length() == 0) { std::cout << B_BLUE "-> " RESET; - std::getline(std::cin, str); + if (!std::getline(std::cin, str)) + return; this->_contact[it].add_last(str); } std::cout << B_CYAN "enter a nickname pliz :" << std::endl; - while (_contact[it].get_nick().length() == 0) + while (this->_contact[it].get_nick().length() == 0) { std::cout << B_BLUE "-> " RESET; - std::getline(std::cin, str); + if (!std::getline(std::cin, str)) + return; this->_contact[it].add_nick(str); } std::cout << B_CYAN "enter a number pliz :" << std::endl; - while (_contact[it].get_num().length() == 0) + while (this->_contact[it].get_num().length() == 0) { std::cout << B_BLUE "-> " RESET; - std::getline(std::cin, str); + if (!std::getline(std::cin, str)) + return; this->_contact[it].add_num(str); } std::cout << B_CYAN "enter a secret of this contact pliz :" << std::endl; - while (_contact[it].get_secret().length() == 0) + while (this->_contact[it].get_secret().length() == 0) { std::cout << B_BLUE "-> " RESET; - std::getline(std::cin, str); + if (!std::getline(std::cin, str)) + return; this->_contact[it].add_secret(str); } + + this->_contact_count++; } std::string truncate(std::string str, size_t len) { @@ -117,19 +121,22 @@ void PhoneBook::print_contact( int id ) { void PhoneBook::search_contact() { std::string index; - int id; + long id; + char *ret; if (this->print_phonebook() == 0) return; - id = -1; std::cout << std::endl << B_CYAN "choose an index :" << std::endl; - while (id < 0 || id > this->_contact_count - 1 || id > 7) + while (1) { std::cout << B_BLUE "-> " RESET; - std::getline(std::cin, index); - id = std::atoi(index.c_str()); - if (id < 0 || id > this->_contact_count - 1 || id > 7) + if (!std::getline(std::cin, index)) + return; + id = std::strtol(index.c_str(), &ret, 10); + if (*ret || id < 0 || id > this->_contact_count - 1 || id > 7) std::cout << B_RED "sorry, not a valid index" RESET << std::endl; + else + break; } this->print_contact(id); diff --git a/d00/ex01/builds/Contact.class.o b/d00/ex01/builds/Contact.class.o index 5322b863baacd88d2e3af4c0d0b2a70f7674df56..415acba412edad53695b80998d11abecb2d216ae 100644 GIT binary patch literal 9352 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 SEk&s}q6#;ll0&<4>;FFlU7?%+ literal 8888 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 Sxe+&|>-UCU7<8lF{QVE)kMcDD diff --git a/d00/ex01/builds/main.o b/d00/ex01/builds/main.o index 5594901cc101a293abd22cdb98753c1cc4bc4f36..19b7d28dc9cb85a8a1405ddd2f0af3d07debf119 100644 GIT binary patch literal 5592 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 diff --git a/d00/ex01/main.cpp b/d00/ex01/main.cpp index 71b6ccd..3348973 100644 --- a/d00/ex01/main.cpp +++ b/d00/ex01/main.cpp @@ -9,7 +9,7 @@ int main() { std::string cmd; PhoneBook YellowPage; - while (1) + while (std::cin) { std::cout << std::endl; std::cout << B_YELLOW "enter a command: ADD / SEARCH / EXIT" << std::endl; diff --git a/d00/ex01/phonebook b/d00/ex01/phonebook index a6b476cbfa6858073519296b0f72edd61823f19c..0c0a7dfd5fce83ed595cb1fc2b8c512f4c09202c 100755 GIT binary patch literal 34088 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 AD*ylh literal 29560 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