Меня смущает функция "istream& getline (istream& is, string& str)" и согласно http://www.cplusplus.com/reference/string/string/getline/, следующая программа:
#include <iostream>
#include <sstream>
int main()
{
std::istringstream s("this is a test");
std::string line = "line ";
getline( s, line );
std::cout << line << std::endl;
s.str("test again");
getline( s, line );
std::cout << s.str() << std::endl;
std::cout << line << std::endl;
return 0;
}
Я ожидаю, что вывод будет:
строка это тест
проверить еще раз
проверить еще раз
но когда я тестирую его в Visual Studio, вывод:
это тест
проверить еще раз
это тест
Может ли кто-нибудь объяснить мне разочаровывающую функцию?