Programación General => C/C++ => Mensaje iniciado por: ChinoCr en Martes 23 de Noviembre de 2010, 01:56
Título: [DUDA] Variable en open() de ofstream;
Publicado por: ChinoCr en Martes 23 de Noviembre de 2010, 01:56
Hola, soy nuevo en este foro, y me integro con una duda que tengo. Verán; hice un código el cual me guarda en un archivo el contenido de un String, hasta ahí todo bien. Lo que me gustaría hacer, es que yo pueda introducir una variable en el nombre del archivo a guardar, a ver si me entendieron.
El código que tengo es este:
Código: C++
ofstream miScript;
miScript.open("archivos/miScript.txt");
miScript<< descripcionScript;
miScript.close();
Y quiero que me quede algo como esto:
Código: C++
ofstream miScript;
miScript.open("archivos/"+ tituloScript +".txt");
miScript<< descripcionScript;
miScript.close();
Sólo que no sé como se haría, ya que eso me da error de compilación. Espero me puedan ayudar.
Saludos ^^
Título: Re: [DUDA] Variable en open() de ofstream;
Publicado por: Epa en Miércoles 24 de Noviembre de 2010, 17:50
Buenas.
En C++ un literal cadena ( "algo entre comillas dobles") devuelve un puntero por lo que al hacer estas haciendo una suma de puntero, algo que no esta permitido y en caso de que lo estubiese, el resultado no seria el que eesperas.
"archivos/" + tituloScript + ".txt"
si existe una sobrecarga de open que hacepte una obejto string, podrias ahcer:
string path("archivos/");
path += tituloScript;
path += ".txt";
miScript.open(path);
sino tendrias que crear un vector de char y meter el path completo, y pasarle ese paramtero a open:
char path[50] = "archivos/";
strcat(path, tituloScript);
strcat(path, ".txt");
miScript.open(path);
Saludos
Título: Re: [DUDA] Variable en open() de ofstream;
Publicado por: player_ en Miércoles 24 de Noviembre de 2010, 22:35