#include <string>
#include <vector>
#include <iostream>
#include <limits>
struct PersonInfoStruct // Ich würde bei Typennamen nicht angeben, dass es ein struct ist. Wozu soll das gut sein?
{
// Hier sollte man überlegen, ob die Attribute nicht lieber private sein sollten.
std:: string name; // Vergiss char-Arrays, außer du hast einen sehr guten Grund
std:: string surname;
float hours;
} ;
// Deine sub_new_person schreiben wir ein bisschen um und nennen sie anders:
std:: istream & operator>> ( std:: istream & in, PersonInfoStruct& person)
{
std:: cout << "\n Geben Sie den Vornamen ein: " ; // Naja, eigentlich sollte eine Eingabefunktion nix ausgeben, aber ich will nicht alles umbauen
getline( in, person.name ) ;
std:: cout << "\n Geben Sie den Nachnamen ein: " ;
getline( in, person.surname ) ;
std:: cout << "\n Geben Sie die Arbeitsstunden ein: " ;
in >> person.hours ;
in.ignore ( std:: numeric_limits < std:: streamsize > :: max ( ) , '\n ' ) ;
return in;
}
// Ausgabe gibt's auch noch dazu:
std:: ostream & operator<< ( std:: ostream & out, const PersonInfoStruct& person)
{
return out << "Vorname: " << person.name
<< "\n Nachname: " << person.surname
<< "\n Arbeitsstunden: " << person.hours << '\n ' ;
}
int main( )
{
std:: vector < PersonInfoStruct> personenliste;
for ( PersonInfoStruct person; std:: cin >> person; personenliste.push_back ( person) ) ;
std:: cout << "Folgende Personen sind bekannt:\n " ;
for ( unsigned i = 0 ; i < personenliste.size ( ) ; ++ i)
std:: cout << personenliste[ i] << '\n ' ;
}
I2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bGltaXRzPgoKCnN0cnVjdCBQZXJzb25JbmZvU3RydWN0ICAvLyBJY2ggd8O8cmRlIGJlaSBUeXBlbm5hbWVuIG5pY2h0IGFuZ2ViZW4sIGRhc3MgZXMgZWluIHN0cnVjdCBpc3QuIFdvenUgc29sbCBkYXMgZ3V0IHNlaW4/CnsKICAvLyBIaWVyIHNvbGx0ZSBtYW4gw7xiZXJsZWdlbiwgb2IgZGllIEF0dHJpYnV0ZSBuaWNodCBsaWViZXIgcHJpdmF0ZSBzZWluIHNvbGx0ZW4uCiAgc3RkOjpzdHJpbmcgbmFtZTsgICAvLyBWZXJnaXNzIGNoYXItQXJyYXlzLCBhdcOfZXIgZHUgaGFzdCBlaW5lbiBzZWhyIGd1dGVuIEdydW5kCiAgc3RkOjpzdHJpbmcgc3VybmFtZTsKICBmbG9hdCBob3VyczsKfTsKCi8vIERlaW5lIHN1Yl9uZXdfcGVyc29uIHNjaHJlaWJlbiB3aXIgZWluIGJpc3NjaGVuIHVtIHVuZCBuZW5uZW4gc2llIGFuZGVyczoKc3RkOjppc3RyZWFtJiBvcGVyYXRvcj4+KHN0ZDo6aXN0cmVhbSYgaW4sIFBlcnNvbkluZm9TdHJ1Y3QmIHBlcnNvbikKewogICAgc3RkOjpjb3V0IDw8ICJcbkdlYmVuIFNpZSBkZW4gVm9ybmFtZW4gZWluOiAiOyAgLy8gTmFqYSwgZWlnZW50bGljaCBzb2xsdGUgZWluZSBFaW5nYWJlZnVua3Rpb24gbml4IGF1c2dlYmVuLCBhYmVyIGljaCB3aWxsIG5pY2h0IGFsbGVzIHVtYmF1ZW4KICAgIGdldGxpbmUoaW4sIHBlcnNvbi5uYW1lKTsKCiAgICBzdGQ6OmNvdXQgPDwgIlxuR2ViZW4gU2llIGRlbiBOYWNobmFtZW4gZWluOiAiOwogICAgZ2V0bGluZShpbiwgcGVyc29uLnN1cm5hbWUpOwoKICAgIHN0ZDo6Y291dCA8PCAiXG5HZWJlbiBTaWUgZGllIEFyYmVpdHNzdHVuZGVuIGVpbjogIjsKICAgIGluID4+IHBlcnNvbi5ob3VyczsKCiAgICBpbi5pZ25vcmUoc3RkOjpudW1lcmljX2xpbWl0czxzdGQ6OnN0cmVhbXNpemU+OjptYXgoKSwgJ1xuJyk7CiAgICByZXR1cm4gaW47Cn0gCgovLyBBdXNnYWJlIGdpYnQncyBhdWNoIG5vY2ggZGF6dToKc3RkOjpvc3RyZWFtJiBvcGVyYXRvcjw8KHN0ZDo6b3N0cmVhbSYgb3V0LCBjb25zdCBQZXJzb25JbmZvU3RydWN0JiBwZXJzb24pCnsKICAgIHJldHVybiBvdXQgPDwgIlZvcm5hbWU6ICIgPDwgcGVyc29uLm5hbWUKICAgICAgICAgICAgICAgPDwgIlxuTmFjaG5hbWU6ICIgPDwgcGVyc29uLnN1cm5hbWUKICAgICAgICAgICAgICAgPDwgIlxuQXJiZWl0c3N0dW5kZW46ICIgPDwgcGVyc29uLmhvdXJzIDw8ICdcbic7Cn0gCgoKaW50IG1haW4oKQp7CiAgc3RkOjp2ZWN0b3I8UGVyc29uSW5mb1N0cnVjdD4gcGVyc29uZW5saXN0ZTsKICBmb3IgKFBlcnNvbkluZm9TdHJ1Y3QgcGVyc29uOyBzdGQ6OmNpbiA+PiBwZXJzb247IHBlcnNvbmVubGlzdGUucHVzaF9iYWNrKHBlcnNvbikpOwoKICBzdGQ6OmNvdXQgPDwgIkZvbGdlbmRlIFBlcnNvbmVuIHNpbmQgYmVrYW5udDpcbiI7CiAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBlcnNvbmVubGlzdGUuc2l6ZSgpOyArK2kpCiAgICBzdGQ6OmNvdXQgPDwgcGVyc29uZW5saXN0ZVtpXSA8PCAnXG4nOwp9