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?