Test Foro de elhacker.net SMF 2.1

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

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:


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( );

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 (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?
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 ;)