elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [DUDA] Variable en open() de ofstream;
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: [DUDA] Variable en open() de ofstream;  (Leído 5,355 veces)
Ch1n0Cr

Desconectado Desconectado

Mensajes: 11



Ver Perfil
[DUDA] Variable en open() de ofstream;
« en: 23 Noviembre 2010, 01:47 am »

Hola, yo de nuevo con otra duda. 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
  1. ofstream miScript;
  2. miScript.open("archivos/miScript.txt");
  3. miScript<< descripcionScript;
  4. miScript.close();

Y quiero que me quede algo como esto:

Código
  1. ofstream miScript;
  2. miScript.open("archivos/" + tituloScript + ".txt");
  3. miScript<< descripcionScript;
  4. 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 ^^


En línea

Beakman

Desconectado Desconectado

Mensajes: 190



Ver Perfil WWW
Re: [DUDA] Variable en open() de ofstream;
« Respuesta #1 en: 23 Noviembre 2010, 02:39 am »

tenes que concatenar la variable
Código:
strcat( tituloScript, ".txt" );
y asi hasta tener lo que querés


En línea

Ch1n0Cr

Desconectado Desconectado

Mensajes: 11



Ver Perfil
Re: [DUDA] Variable en open() de ofstream;
« Respuesta #2 en: 23 Noviembre 2010, 02:51 am »

tenes que concatenar la variable
Código:
strcat( tituloScript, ".txt" );
y asi hasta tener lo que querés

Sí, pero igual si hago:

Código
  1. strcat(nombreScript, ".txt");
  2.  
  3. ofstream miScript;
  4. miScript.open(nombreScript);
  5. miScript<< descripcionScript;
  6. miScript.close();

Me da error. Osea, lo que no me permite es poner una variable en los parámetros del open :-S
En línea

Beakman

Desconectado Desconectado

Mensajes: 190



Ver Perfil WWW
Re: [DUDA] Variable en open() de ofstream;
« Respuesta #3 en: 23 Noviembre 2010, 03:09 am »

ahh..
Que error te devuelve?

..esto tampoco funciona?
Código:
ofstream miScript(nombreScript);
miScript<< descripcionScript;
miScript.close();
En línea

Ch1n0Cr

Desconectado Desconectado

Mensajes: 11



Ver Perfil
Re: [DUDA] Variable en open() de ofstream;
« Respuesta #4 en: 23 Noviembre 2010, 03:15 am »

Código:
Compilador: Default compiler
Ejecutando  g++.exe...
g++.exe "C:\Users\Kevin\Desktop\ScriptManager\manager.cpp" -o "C:\Users\Kevin\Desktop\ScriptManager\manager.exe"    -I"C:\Dev-Cpp\include\c++\3.3.1"  -I"C:\Dev-Cpp\include\c++\3.3.1\mingw32"  -I"C:\Dev-Cpp\include\c++\3.3.1\backward"  -I"C:\Dev-Cpp\lib\gcc-lib\mingw32\3.3.1\include"  -I"C:\Dev-Cpp\include"   -L"C:\Dev-Cpp\lib" -lconio
C:/Users/Kevin/Desktop/ScriptManager/manager.cpp: In function `void
   agregarScript()':
C:/Users/Kevin/Desktop/ScriptManager/manager.cpp:122: error: no matching
   function for call to `std::basic_ofstream<char, std::char_traits<char> >::
   open(std::string&)'
C:/Dev-Cpp/include/c++/3.3.1/fstream:691: error: candidates are: void
   std::basic_ofstream<_CharT, _Traits>::open(const char*, std::_Ios_Openmode)
   [with _CharT = char, _Traits = std::char_traits<char>]
En línea

Beakman

Desconectado Desconectado

Mensajes: 190



Ver Perfil WWW
Re: [DUDA] Variable en open() de ofstream;
« Respuesta #5 en: 23 Noviembre 2010, 03:28 am »

La variable "nombreScript" es un string?
No tiene que ser un string.
En línea

Ch1n0Cr

Desconectado Desconectado

Mensajes: 11



Ver Perfil
Re: [DUDA] Variable en open() de ofstream;
« Respuesta #6 en: 23 Noviembre 2010, 03:31 am »

Sí lo es, de hecho es xq ahí almaceno el contenido de un cin... ¿qué debo de hacer?
En línea

Beakman

Desconectado Desconectado

Mensajes: 190



Ver Perfil WWW
Re: [DUDA] Variable en open() de ofstream;
« Respuesta #7 en: 23 Noviembre 2010, 03:36 am »

El método open no acepta string.
Tendrías que tener una cadena de caracteres ( char auxiliar[100] ). Y ahi pasas lo que tenes en el string y después si lo pasas al open.
Si lo que te interesa del string es poder ingresar una cadena "infinita" y no querés hacer char auxiliar[100] porque tal vez se necesite mas, entonces hace una cadena con memoria dinamica y le pones el tamaño de acuerdo al tamaño del string.
se entiende?
En línea

Ch1n0Cr

Desconectado Desconectado

Mensajes: 11



Ver Perfil
Re: [DUDA] Variable en open() de ofstream;
« Respuesta #8 en: 23 Noviembre 2010, 03:54 am »

Gracias, no sabía que no admitía string xD... al final me ha quedado así:

Código
  1. // Crear el archivo
  2. string nombreArchivo = "archivos/" + nombreScript + " - " + categoriaScript + ".txt";
  3. char *rutaArchivo = strdup(nombreArchivo.c_str());
  4.  
  5. ofstream miScript;
  6. miScript.open(rutaArchivo);
  7. miScript << "Titulo: " << nombreScript << "\nCategoría: " << categoriaScript << "\nCódigo:\n\n" << descripcionScript;
  8. miScript.close();
En línea

Beakman

Desconectado Desconectado

Mensajes: 190



Ver Perfil WWW
Re: [DUDA] Variable en open() de ofstream;
« Respuesta #9 en: 23 Noviembre 2010, 04:00 am »

denada.. ya te funciono?.. no admite es una lastima XD jeje
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda sobre variable
.NET (C#, VB.NET, ASP)
_CrisiS_ 5 3,317 Último mensaje 30 Enero 2011, 04:21 am
por _CrisiS_
[C++]Contenido de ofstream con variable
Programación C/C++
Puntoinfinito 2 2,531 Último mensaje 11 Febrero 2013, 15:24 pm
por Puntoinfinito
Duda redes open « 1 2 »
Hacking Wireless
miguelez 11 6,644 Último mensaje 18 Marzo 2013, 15:28 pm
por nestorv04
Ofstream escribe bytes corruptos o Ifstream los lee
Programación C/C++
Kaxperday 1 1,500 Último mensaje 31 Octubre 2015, 13:25 pm
por ivancea96
std::ofstream::close crashea sin explicación aparente
Programación C/C++
class_OpenGL 4 2,116 Último mensaje 19 Diciembre 2015, 22:54 pm
por class_OpenGL
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines