Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: 1mpuls0 en 31 Marzo 2014, 17:34 pm



Título: Cómo concatenar variables de diferentes tipos? (C++)
Publicado por: 1mpuls0 en 31 Marzo 2014, 17:34 pm
Hola.

Me quedé atorado en algo...
No sé como concatenar variables tipo string, int y float y guardarla en una tipo string.

Lo intenté así pero marca errores xD
Código:
string registro = strcat(empresa, ", ", empleado, ", ", edad, ", ", sexo, ", ", sueldo);

*empleado, empresa, sexo-> string
*edad-> int
*sueldo-> float


Estuve buscando en el foro y en diferentes webs, pero al parecer hay diferentes formas y hasta funciones e.e
No hay nada sencillo?, cual es lo más simple o lo más correcto para concatenar diferentes tipos?.

Sugerencias?

Gracias!


Título: Re: Cómo concatenar variables de diferentes tipos? (C++)
Publicado por: ivancea96 en 31 Marzo 2014, 19:28 pm
Pasa de int a string. Si no me equivoco, las funciones atoi()->int y atof()->double/float lo hacen.

Sinó, haz tu propia función para convertirlo. Si es lo que buscas, string no tiene su propio método. En cambio, stringstream si que lo tiene.


Título: Re: Cómo concatenar variables de diferentes tipos? (C++)
Publicado por: 1mpuls0 en 31 Marzo 2014, 19:54 pm
Buscaba algo sencillo para hacerlo porque soy nuevo en C++ xD me va a tomar un poco más de tiempo hacer la función.
En verdad no hay nada como:

Java ( String resultado = empresa + ", " + empleado + ", " + edad + ", " + sexo + ", " + sueldo; )
PHP ( $resultado = $empresa.", ".$empleado.", ".$edad.", ".$sexo.", ".$sueldo; )
VB * (String resultado = empresa & ", " & empleado & ", " & edad & ", " & sexo & ", " & sueldo )

Leí algo sobre stringstream y me pareció simple intentaré así a ver si no tengo algun problema.

Gracias!


Título: Re: Cómo concatenar variables de diferentes tipos? (C++)
Publicado por: eferion en 31 Marzo 2014, 20:10 pm
en C:

Código
  1. int entero = 5;
  2. float decimal = 10.44;
  3. char* cad = "abcde";
  4.  
  5. char buffer[200];
  6. sprintf( buffer, "%s %d - %f", cad, entero, decimal );

en C++:

Código
  1. int entero = 5;
  2. float decimal = 10.44;
  3. std::string cad = "abcde";
  4.  
  5. std::stringstream stream;
  6. stream << cad << " " << entero << " - " << decimal;
  7.  
  8. std::string resultado = stream.str( );


Título: Re: Cómo concatenar variables de diferentes tipos? (C++)
Publicado por: 1mpuls0 en 31 Marzo 2014, 20:26 pm
Gracias chicos!

Solucionado :)

Código
  1. void Empleado::RegistrarEmpleado(string empresa, string empleado, int edad, string sexo, float sueldo) {
  2.  
  3.    stringstream registro;
  4.    registro << empresa << ", " << empleado << ", " << edad << ", " << sexo << ", " << sueldo;
  5.  
  6.    string resultado = registro.str( );
  7. }
  8.  

Por cierto, estoy utilizando Dev C++ y no sé porque a veces me compila sin marcar errores, pero modifico algo y marca error, deshago la modificación y sigue marcando error e.e y tengo que cerrar el programa para ver si en realidad hay un error xD. Es problema del compilador?, o tendrá algo que ver con los apuntadores, liberar memoria o algo por el estilo?


Título: Re: Cómo concatenar variables de diferentes tipos? (C++)
Publicado por: ivancea96 en 31 Marzo 2014, 20:48 pm
Dev-Cpp es "antiguo" y ya no se mantiene si no me equivoco. Te diría que probases Code::Blocks.


Título: Re: Cómo concatenar variables de diferentes tipos? (C++)
Publicado por: 1mpuls0 en 31 Marzo 2014, 20:51 pm
En serio?.
Eso no lo sabía, pensé que era como lo más usado x'D

Bueno, gracias por la recomendación.

Saludos!


Título: Re: Cómo concatenar variables de diferentes tipos? (C++)
Publicado por: amchacon en 1 Abril 2014, 00:45 am
Codeblocks.

Ese es el IDE que te recomiendo ;)