Dlaczego in_avail () wypisuje zero, nawet jeśli strumień ma jakiś znak?
#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
Myślę, że będzie to wynik 0 i 2
ale kiedy uruchomię kod, wyjdzie on 0 i 0, dlaczego?
lub jeśli zmienię cin.putback (1); do int a; cin >> a; z wejściem 12 12;
nadal wyprowadza 0 i 0