Usted conoce la terminología stdio común que stdin
está especificada por un nombre de archivo de "-", p. Ej.C++: asignar cin a una variable ifstream?
if ((strcmp(fname, "-"))
fp = fopen(fname);
else
fp = stdin;
Cuál es la mejor manera de hacer esto con una instancia ifstream
? He recibido un poco de código que tiene un ifstream
como parte de una clase y me gustaría añadir código para hacer el equivalente, algo así como:
if (filename == "-")
logstream = cin; // **how do I do this*?*
else
logstream.open(filename.c_str());
gracias ... esto solo tiene que ser portátil para Linux y osx, entonces/dev/stdin lo es! (suspiro) –
esto ilustra cómo nadie se sentó y creó un conjunto medio aceptable de librerías de C++. (Diría boost si no tuviera tantos problemas de versiones) –
FWIW, con C++ 11 en lugar de pasar 'noop()' a 'reset' (y definir la estructura), un aspecto simple (y divertido) '[] (...) {}' lo hace. – akim