• Viernes 8 de Noviembre de 2024, 21:37

Autor Tema:  [DUDA] Variable en open() de ofstream;  (Leído 1148 veces)

ChinoCr

  • Nuevo Miembro
  • *
  • Mensajes: 1
  • Nacionalidad: cr
    • Ver Perfil
[DUDA] Variable en open() de ofstream;
« en: Martes 23 de Noviembre de 2010, 01:56 »
0
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++
  1. ofstream miScript;
  2. miScript.open("archivos/miScript.txt");
  3. miScript<< descripcionScript;
  4. miScript.close();
  5.  

Y quiero que me quede algo como esto:

Código: C++
  1. ofstream miScript;
  2. miScript.open("archivos/" + tituloScript + ".txt");
  3. miScript<< descripcionScript;
  4. miScript.close();
  5.  

Sólo que no sé como se haría, ya que eso me da error de compilación.
Espero me puedan ayudar.

Saludos ^^

Epa

  • Miembro MUY activo
  • ***
  • Mensajes: 242
  • Nacionalidad: ar
    • Ver Perfil
Re: [DUDA] Variable en open() de ofstream;
« Respuesta #1 en: Miércoles 24 de Noviembre de 2010, 17:50 »
0
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
The sweet smell of a great sorrow lies over the land.


player_

  • Miembro activo
  • **
  • Mensajes: 51
    • Ver Perfil
Re: [DUDA] Variable en open() de ofstream;
« Respuesta #2 en: Miércoles 24 de Noviembre de 2010, 22:35 »
0
Buena solución.