Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Ayuda con conversion invalida

Estas en el tema de Ayuda con conversion invalida en el foro de C/C++ en Foros del Web. Hola, pues recien me salio una duda con el siguiente codigo que les pongo a continuacion, la idea es transformar los tipos enumerados "diamantes, corazones, ...
  #1 (permalink)  
Antiguo 23/12/2009, 12:57
 
Fecha de Ingreso: diciembre-2009
Mensajes: 2
Antigüedad: 14 años, 4 meses
Puntos: 0
Ayuda con conversion invalida

Hola, pues recien me salio una duda con el siguiente codigo que les pongo a continuacion, la idea es transformar los tipos enumerados "diamantes, corazones, treboles, picas" a " d, c, t, p" respectivamente.

Código C++:
Ver original
  1. #include<iostream>
  2.  
  3. using namespace std;
  4.  
  5. // Constantes
  6.  
  7. const int MAXVECTOR = 10;
  8.  
  9. // Tipos
  10.  
  11. typedef enum { diamantes, corazones, treboles, picas} TPalo;
  12.  
  13. typedef int TValor [MAXVECTOR];
  14.  
  15. struct TCarta{
  16.   TValor valor;
  17.   TPalo palo;
  18. };
  19.  
  20. // Cabeceras
  21.  
  22. char palo2char(const TPalo p);
  23.  
  24. // Principal
  25.  
  26. int main()
  27. {
  28.  
  29. cout << "Para Diamantes: " << palo2char(0) << endl;
  30.  
  31.  
  32. }
  33.  
  34. // Funciones y Procedimientos
  35.  
  36. char palo2char(const TPalo p)
  37. {
  38.  
  39. char resultado;
  40.  
  41. if (p == 0){
  42.   resultado = 'd';
  43. } else { if (p == 1){
  44.       resultado = 'c';
  45.     } else { if (p == 2){
  46.           resultado = 't';
  47.         } else { if (p == 3){
  48.               resultado = 'p';
  49.             }
  50.           }
  51.       }
  52.   }
  53.  
  54. return resultado;
  55.  
  56. }

He planteado este codigo, pero a la hora de compilarlo me sale el siguente error:

Código:
pruebacartas.cpp: In function 'int main()':
pruebacartas.cpp:29: error: conversión inválida de 'int' a 'TPalo'
pruebacartas.cpp:29: error:   argumento de inicialización 1 de 'char palo2char(TPalo)'
Y sinceramente, he estado mirando en libros y apuntes pero no consigo solucionarlo, siempre termino con el problema de conversion.

Seguramente será una tonteria, pero se agradeceria si me ayudarais un poco^^

Saludos.

Última edición por Valcro; 23/12/2009 a las 13:02 Razón: Highlight en vez de Code
  #2 (permalink)  
Antiguo 24/12/2009, 11:19
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Respuesta: Ayuda con conversion invalida

Podes hacer un casting:
Código:
cout << "Para Diamantes: " << palo2char((TPalo)0) << endl;
O mejor usar el enumerado:
Código:
cout << "Para Diamantes: " << palo2char(diamantes) << endl;
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #3 (permalink)  
Antiguo 25/12/2009, 06:42
 
Fecha de Ingreso: diciembre-2009
Mensajes: 2
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Ayuda con conversion invalida

Muchas gracias Eternal Idol! me sirvió 100%.

Saludos y Feliz Navidad!!
  #4 (permalink)  
Antiguo 25/12/2009, 07:05
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Respuesta: Ayuda con conversion invalida

De nadas Felices fiestas
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:19.