fork download
  1. #include <iostream>
  2. #include <string>
  3. #include <vector>
  4. #include <algorithm>
  5. using namespace std;
  6.  
  7. class user {
  8. string name_, surname_, fullname_;
  9.  
  10. auto calc_fullname() const {
  11. return name_ + " " + surname_;
  12. }
  13. public:
  14. user(string const &name, string const &surname):
  15. name_(name),
  16. surname_(surname),
  17. fullname_(calc_fullname())
  18. {}
  19.  
  20. auto &name() const {
  21. return name_;
  22. }
  23.  
  24. auto &surname() const {
  25. return surname_;
  26. }
  27.  
  28. auto fullname() const {
  29. return fullname_;
  30. }
  31. };
  32.  
  33. namespace validate {
  34. bool non_empty(user const &usr) {
  35. return usr.fullname().find_first_not_of(" ") != std::string::npos;
  36. }
  37. }
  38.  
  39. namespace console_io {
  40. user ask_for_user(istream &in, ostream &messages) {
  41. string name, surname;
  42. //to możesz mieć u siebie
  43. //messages << "name: ";
  44. in >> name;
  45. //to możesz mieć u siebie
  46. //messages << "surname: ";
  47. in >> surname;
  48. return user(name, surname);
  49. }
  50.  
  51. auto &print(user const &usr) {
  52. return cout << "User: " << usr.fullname() << endl;
  53. }
  54. }
  55.  
  56. int main() {
  57. vector<user> users;
  58. while(cin) {
  59. auto usr = console_io::ask_for_user(cin, cout);
  60. if(validate::non_empty(usr)) {
  61. users.push_back(usr);
  62. }
  63. }
  64.  
  65. for(auto const &usr: users) {
  66. console_io::print(usr);
  67. }
  68. return 0;
  69. }
Success #stdin #stdout 0s 3476KB
stdin
Adam Kowalski
Ksawery Iksinski
Jacek Soplica
Tadeusz Soplica
Ewa Horeszko
stdout
User: Adam Kowalski
User: Ksawery Iksinski
User: Jacek Soplica
User: Tadeusz Soplica
User: Ewa Horeszko