É possível “preparar” a entrada de cin?

Emua resposta, especificamente noxemplo de Ideone vinculado, @Nawaz mostra como você pode alterar o objeto de buffer decout para escrever para outra coisa. Isso me fez pensar em utilizar isso para preparar informações decin, preenchendo seustreambuf:

#include <iostream>
#include <sstream>
using namespace std;

int main(){
        streambuf *coutbuf = cout.rdbuf(cin.rdbuf());
        cout << "this goes to the input stream" << endl;
        string s;
        cin >> s;
        cout.rdbuf(coutbuf);
        cout << "after cour.rdbuf : " << s;
        return 0;
}

Mas isso não funciona como o esperado ou, em outras palavras, falha. : |cin ainda espera a entrada do usuário, em vez de ler a partir dostreambuf. Existe uma maneira de fazer isso funcionar?

questionAnswers(2)

yourAnswerToTheQuestion