Ich bin neugierig auf den technischen Grund für cin.getline und die global getline Funktion an verschiedenen Orten.Warum hat std :: cin.getline keine oveloaded-Methode, um std :: string zu übernehmen?
Was war die Motivation für nicht einfach, alle diese Funktionssignaturen für cin definieren:
//THESE TWO EXIST
istream& cin::getline (char* s, streamsize n);
istream& cin::getline (char* s, streamsize n, char delim);
//THESE TWO COULD EXIST
istream& cin::getline (string &s);
istream& cin::getline (string &s, char delim);
War es, weil andere Arten hinzugefügt werden möchten, und sie wollen nicht die Zeichenfolge heiraten cin?
möglich Duplikat von [Warum nehmen die std :: fstream-Klassen keine std :: string?] (Http://stackoverflow.com/questions/32332/why-dont-the-stdfstream-classes-take- a-stdstring) – wilhelmtell
@wilhelmtell: Das scheint eine ganz andere Frage zu sein. – UncleBens
@UncleBens die Frage ist sehr ähnlich, auch wenn die Namen unterschiedlich sind. Die Antwort sollte (fast) identisch sein. – wilhelmtell