我对“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 上测试它时,输出是:
这是一个测验
再次测试
这是一个测验
谁能为我解释一下令人沮丧的功能?