elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  ¿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 18,077 veces)
ApOkAlizE

Desconectado Desconectado

Mensajes: 150


¿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 pm »

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
naderST


Desconectado Desconectado

Mensajes: 625



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

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
  1. string itoa(int n){
  2. string rtn;
  3. for(rtn="";n>0;rtn.insert(rtn.begin(),n%10+'0'),n/=10);
  4. return rtn;
  5. }


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

rir3760


Desconectado Desconectado

Mensajes: 1.639


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

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
  1. x = system("dir");
  2.  
  3. /* ... */
  4.  
  5. fprintf(F, "%d\n", x);
Para leerlo solo tienes que utilizar fscanf.

Código
  1. string itoa(int n){
  2. string rtn;
  3. for(rtn="";n>0;rtn.insert(rtn.begin(),n%10+'0'),n/=10);
  4. return rtn;
  5. }
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
  1. string itoa(int n)
  2. {
  3. string s;
  4. char digit[] = "0123456789";
  5.  
  6. do {
  7. s = digit[n % 10] + s;
  8. }while ((n /= 10) > 0);
  9.  
  10. return s;
  11. }

Otra forma es utilizando clase stringstream:
Código
  1. string itoa(int n)
  2. {
  3. stringstream ss;
  4. string s;
  5.  
  6. ss << n;
  7. ss >> s;
  8.  
  9. return s;
  10. }

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
convertir char a wchar_t
Programación C/C++
Riki_89D 3 3,937 Último mensaje 1 Junio 2010, 09:27 am
por Eternal Idol
Convertir char ** en double
Programación C/C++
karmele85 5 2,427 Último mensaje 6 Julio 2010, 20:35 pm
por karmele85
Convertir char[] a char *[] ?
Programación C/C++
Sanlegas 2 3,492 Último mensaje 11 Julio 2010, 01:01 am
por leogtz
convertir numero char a int
Programación C/C++
d00ze13 6 8,450 Último mensaje 13 Enero 2011, 23:09 pm
por Martxel
convertir un char a tchar, wchar etc.
Programación C/C++
YagamiIori2002 6 3,037 Último mensaje 26 Abril 2012, 19:06 pm
por YagamiIori2002
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines