C++:用一个istringstream对象读入参数

use*_*532 4 c++

int i1;
std::istringstream z(argv[1]);
z >> i1;
cout << i1;
z.str(argv[2]);
int i2;
z >> i2;
cout << i2;
Run Code Online (Sandbox Code Playgroud)

这是我的代码.我的第一个参数是123,我的第二个参数是12.我希望输出为12312.相反,我看到1234196880.为什么?我想用str方法我可以将流重置为第二个参数并读入它?

Mar*_* A. 6

当你这样做

z.str(argv[2]);
Run Code Online (Sandbox Code Playgroud)

该函数在内部调用str其内部字符串缓冲区对象的成员(http://www.cplusplus.com/reference/sstream/stringbuf/str/),并只设置字符串缓冲区的内容.您需要倒回指针才能使用新设置的缓冲区(http://en.cppreference.com/w/cpp/io/basic_istream/seekg)