el problema que da es que no deja meter el nombre del archivo y te da error.
esto se debe a que al meter el valor de "e", el 1 se guarda en "e" pero el \n del intro se queda guardado en el buffer. entonces al hacer cin.get para pedirte el nombre del archivo, coge automaticamente el \n y por eso no te deja meter el nombre y te da error.
la solucion es liberar el buffer antes del cin.get
Código C++:
Ver originalcout << "Nombre del archivo: " << flush;
cin.ignore();
cin.get (nombreArchivo, 250);
en este caso estoy ignorando lo que hay en el buffer de cin. he utilizado esta funcion por que no me se la de liberar el buffer en C++ (en C seria fflush(stdin); ).