Почему in_avail () выдает ноль, даже если в потоке есть символ?

#include <iostream>
int main( )
{
   using namespace std;
   cout << cin.rdbuf()->in_avail() << endl;
   cin.putback(1);
   cin.putback(1);
   cout << cin.rdbuf()->in_avail() << endl;
   return 0;
} //compile by g++-4.8.1

Я думаю, что это будет выводить 0 и 2

но когда я запускаю код, он выводит 0 и 0, почему?

или если я изменю cin.putback (1); к инт; cin >> a; с входом 12 12;

он по-прежнему выводит 0 и 0

Ответы на вопрос(2)

Ваш ответ на вопрос