Je suis curieux de connaître la raison technique pour cin.getline et la fonction global getline étant dans des endroits différents.Pourquoi std :: cin.getline n'a-t-il pas une méthode surchargée pour prendre std :: string?
Quelle a été la motivation pour ne pas définir simplement toutes ces signatures de fonction pour cin:
//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);
Était-ce parce que d'autres types peuvent vouloir ajouter et ils ne voulaient pas se marier avec la chaîne à cin?
duplication possible de [Pourquoi les classes std :: fstream ne prennent-elles pas une chaîne std :: string?] (Http://stackoverflow.com/questions/32332/why-dont-the-stdfstream-classes-take- a-stdstring) – wilhelmtell
@wilhelmtell: Cela semble être une question complètement différente. – UncleBens
@UncleBens la question est très similaire, même si les noms sont différents. La réponse devrait être (presque) identique. – wilhelmtell