Es posible "preparar" la entrada de cin?

Insu respuesta, específicamente en ellinked Ejemplo de Ideone, @Nawaz muestra cómo puede cambiar el objeto de búfer decout para escribir a otra cosa. Esto me hizo pensar en utilizar eso para preparar la entrada decin, rellenando sustreambuf:

#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;
}

Pero esto no funciona como se esperaba, o en otras palabras, falla. : | @cin aún espera la entrada del usuario, en lugar de leer la @ proporcionastreambuf. ¿Hay alguna manera de hacer que esto funcione?

Respuestas a la pregunta(2)

Su respuesta a la pregunta