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!
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.
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!
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++:
int entero = 5;
float decimal = 10.44;
std::string cad = "abcde";
std::stringstream stream;
stream << cad << " " << entero << " - " << decimal;
std::string resultado = stream.str( );
Gracias chicos!
Solucionado :)
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?
Dev-Cpp es "antiguo" y ya no se mantiene si no me equivoco. Te diría que probases Code::Blocks.
En serio?.
Eso no lo sabía, pensé que era como lo más usado x'D
Bueno, gracias por la recomendación.
Saludos!
Codeblocks.
Ese es el IDE que te recomiendo ;)