elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 22:27  


Tema destacado: Únete al Grupo Steam elhacker.NET

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse)
| | |-+  ¿como convertir de int a char en C++?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿como convertir de int a char en C++?  (Leído 1,112 veces)
ApOkAlizE

Desconectado Desconectado

Mensajes: 131


¿sabes lo que vales? ¡consigue lo que te mereces!


Ver Perfil
¿como convertir de int a char en C++?
« en: 28 Noviembre 2011, 20:44 »

Pues me he encontrado muchas veces que alguna funcion devuelve un int i se trata de pasarlo a char pero sin variar su contenido, por ejemplo al hacer esto.
int x;
x=system(dir");
char y[300];
*y=(char)x;
FILE * F;
F=fopen("prueva.txt","w");
fputs(y,F);
close(F);
pues en casos como este system te devuelve un int y quieres pasarlo a char pero si lo pasas a char lo necesario esque el valor quedara intacto cosa que no hace, no me digais de usar otra alternativa porque yo no quiero que me den el pez, yo quiero aprender a pescar.
¿Sabeis algun metodo para convertir sin que varie el valor?
gracias.


En línea

Los virus informaticos son como las personas, hacen lo posible para destruir y hacen lo impossible para no ser destruidos... - ApOkAlizE

No nos atrevemos a muchas cosas porque son difíciles, pero son difíciles porque no nos atrevemos a hacerlas. -Seneca
naderST


Desconectado Desconectado

Mensajes: 467



Ver Perfil
Re: ¿como convertir de int a char en C++?
« Respuesta #1 en: 28 Noviembre 2011, 21:23 »

Hay una función NO ESTÁNDAR llamada itoa() la puedes revisar aquí

http://www.cplusplus.com/reference/clibrary/cstdlib/itoa/

Personalmente te recomiendo que hagas tu propia función itoa que sea estándar.

EDIT:

Aquí tienes un código en C++ que convierte de entero a string:

Código
string itoa(int n){
string rtn;
for(rtn="";n>0;rtn.insert(rtn.begin(),n%10+'0'),n/=10);
return rtn;
}


« Última modificación: 28 Noviembre 2011, 21:55 por naderST » En línea
rir3760


Desconectado Desconectado

Mensajes: 382


Ver Perfil
Re: ¿como convertir de int a char en C++?
« Respuesta #2 en: 29 Noviembre 2011, 00:56 »

Para empezar el fragmento que pones es C. No tienes porque convertirlo antes de enviarlo al archivo ya que puedes hacerlo directamente con:
Código
x = system("dir");
 
/* ... */
 
fprintf(F, "%d\n", x);
Para leerlo solo tienes que utilizar fscanf.

Código
string itoa(int n){
string rtn;
for(rtn="";n>0;rtn.insert(rtn.begin(),n%10+'0'),n/=10);
return rtn;
}
Un problema aqui es que devolveria una cadena vacia (no es necesaria la asignacion inicial ya que todo objeto de la clase string inicia asi) si el numero pasado fuera el cero.

Otra opcion es:
Código
string itoa(int n)
{
string s;
char digit[] = "0123456789";
 
do {
s = digit[n % 10] + s;
}while ((n /= 10) > 0);
 
return s;
}

Otra forma es utilizando clase stringstream:
Código
string itoa(int n)
{
stringstream ss;
string s;
 
ss << n;
ss >> s;
 
return s;
}

Un saludo
En línea

The capacity to learn is a gift;
The ability to learn is a skill;
The willingness to learn is a choice.
--
Rebec of Ginaz
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Convertir un char[256] a entero
Programación C/C++
nuel84 14 1,522 Último mensaje 5 Enero 2008, 12:14
por ~~
convertir char a wchar_t
Programación C/C++
Riki_89D 3 1,879 Último mensaje 1 Junio 2010, 09:27
por Eternal Idol
Convertir char ** en double
Programación C/C++
karmele85 5 970 Último mensaje 6 Julio 2010, 20:35
por karmele85
Convertir char[] a char *[] ?
Programación C/C++
Tenient101 2 1,473 Último mensaje 11 Julio 2010, 01:01
por Leo Gutiérrez.
convertir numero char a int
Programación C/C++
d00ze13 6 2,064 Último mensaje 13 Enero 2011, 23:09
por Martxel
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines