Cómo concatenar variables de diferentes tipos? (C++)

Iniciado por 1mpuls0, 31 Marzo 2014, 17:34 PM

0 Miembros y 2 Visitantes están viendo este tema.

1mpuls0

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

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!
abc

ivancea96

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.

1mpuls0

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!
abc

eferion

en C:


int entero = 5;
float decimal = 10.44;
char* cad = "abcde";

char buffer[200];
sprintf( buffer, "%s %d - %f", cad, entero, decimal );


en C++:

Código (cpp) [Seleccionar]

int entero = 5;
float decimal = 10.44;
std::string cad = "abcde";

std::stringstream stream;
stream << cad << " " << entero << " - " << decimal;

std::string resultado = stream.str( );


1mpuls0

Gracias chicos!

Solucionado :)

Código (cpp) [Seleccionar]

void Empleado::RegistrarEmpleado(string empresa, string empleado, int edad, string sexo, float sueldo) {
   
   stringstream registro;
   registro << empresa << ", " << empleado << ", " << edad << ", " << sexo << ", " << sueldo;
   
   string resultado = registro.str( );
}


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?
abc

ivancea96

Dev-Cpp es "antiguo" y ya no se mantiene si no me equivoco. Te diría que probases Code::Blocks.

1mpuls0

En serio?.
Eso no lo sabía, pensé que era como lo más usado x'D

Bueno, gracias por la recomendación.

Saludos!
abc

amchacon

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar