Why are there two getlines, one for char* and one for std::string? Why is getline a seperate function for std::strings and a part of an istream for char*?