fork download
  1. #include <string>
  2. #include <vector>
  3. #include <iostream>
  4. #include <limits>
  5.  
  6.  
  7. struct PersonInfoStruct // Ich würde bei Typennamen nicht angeben, dass es ein struct ist. Wozu soll das gut sein?
  8. {
  9. // Hier sollte man überlegen, ob die Attribute nicht lieber private sein sollten.
  10. std::string name; // Vergiss char-Arrays, außer du hast einen sehr guten Grund
  11. std::string surname;
  12. float hours;
  13. };
  14.  
  15. // Deine sub_new_person schreiben wir ein bisschen um und nennen sie anders:
  16. std::istream& operator>>(std::istream& in, PersonInfoStruct& person)
  17. {
  18. std::cout << "\nGeben Sie den Vornamen ein: "; // Naja, eigentlich sollte eine Eingabefunktion nix ausgeben, aber ich will nicht alles umbauen
  19. getline(in, person.name);
  20.  
  21. std::cout << "\nGeben Sie den Nachnamen ein: ";
  22. getline(in, person.surname);
  23.  
  24. std::cout << "\nGeben Sie die Arbeitsstunden ein: ";
  25. in >> person.hours;
  26.  
  27. in.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
  28. return in;
  29. }
  30.  
  31. // Ausgabe gibt's auch noch dazu:
  32. std::ostream& operator<<(std::ostream& out, const PersonInfoStruct& person)
  33. {
  34. return out << "Vorname: " << person.name
  35. << "\nNachname: " << person.surname
  36. << "\nArbeitsstunden: " << person.hours << '\n';
  37. }
  38.  
  39.  
  40. int main()
  41. {
  42. std::vector<PersonInfoStruct> personenliste;
  43. for (PersonInfoStruct person; std::cin >> person; personenliste.push_back(person));
  44.  
  45. std::cout << "Folgende Personen sind bekannt:\n";
  46. for (unsigned i = 0; i < personenliste.size(); ++i)
  47. std::cout << personenliste[i] << '\n';
  48. }
Success #stdin #stdout 0.01s 2864KB
stdin
Hans
Dampf
31
Florian
Froehlich
5
Kater
Karlo
123.45
stdout
Geben Sie den Vornamen ein: 
Geben Sie den Nachnamen ein: 
Geben Sie die Arbeitsstunden ein: 
Geben Sie den Vornamen ein: 
Geben Sie den Nachnamen ein: 
Geben Sie die Arbeitsstunden ein: 
Geben Sie den Vornamen ein: 
Geben Sie den Nachnamen ein: 
Geben Sie die Arbeitsstunden ein: 
Geben Sie den Vornamen ein: 
Geben Sie den Nachnamen ein: 
Geben Sie die Arbeitsstunden ein: Folgende Personen sind bekannt:
Vorname: Hans
Nachname: Dampf
Arbeitsstunden: 31

Vorname: Florian
Nachname: Froehlich
Arbeitsstunden: 5

Vorname: Kater
Nachname: Karlo
Arbeitsstunden: 123.45