C++ 是否可以使用cin设置快捷方式>&燃气轮机;stringstream::rdbuf()?

C++ 是否可以使用cin设置快捷方式>&燃气轮机;stringstream::rdbuf()?,c++,cin,stringstream,C++,Cin,Stringstream,我从读取字符串并解析它的一些代码的安全实现开始: #include <iostream> #include <sstream> int main() { string work; int var1, var2; cin >> work; // Fill working string from stdin stringstream(work) >> var1 >> var2

我从读取字符串并解析它的一些代码的安全实现开始:

#include <iostream>
#include <sstream>

int main() {
  string work;
  int var1, var2;

  cin >> work;                        // Fill working string from stdin
  stringstream(work) >> var1 >> var2; // Parses as expected.
  cout << var1 << ' ' << var2 << endl;
  return 0;
}

为什么从istream读取不会以不好的方式覆盖工作的缓冲区?使用这种技术,我应该注意什么?

在这两种情况下,如果引发异常,可以保证流处于有效状态。某些流,如
fstream
维护一个独立的内部缓冲区,与
rdbuf
操作的缓冲区不同。
std::cin>>var1>>var2读取两个int变量,而不让所有的轮子旋转。那些额外的东西能解决什么问题?嘿。。。我不再记得完整的上下文,但这是一个非常简单的摘录;我很好奇为什么缓冲区不会被覆盖。
  ...
  stringstream work;
  ...
  cin >> work.rdbuf();  // Fill working string from stdin
  work >> var1 >> var2; // Parses as expected.
  ...