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

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Duda 'tipo enumerado'
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda 'tipo enumerado'  (Leído 1,340 veces)
JonaLamper


Desconectado Desconectado

Mensajes: 394



Ver Perfil
Duda 'tipo enumerado'
« en: 20 Enero 2014, 23:48 pm »

Buenas! Cuando ejecuto este código me devuelve un 1 (correspondiente al color azul). Por qué no me devuelve 'azul' como tal en vez de el 1? Se supone que me tiene que devolver algo del tipo tColores... Qué lío.

Código
  1. #include <iostream>
  2. #include <string>
  3. #include <fstream>
  4. #include <ctime>
  5. #include <cstdlib>
  6. using namespace std;
  7.  
  8.  
  9. // const int NumColores = 6;
  10. // const int Longitud = 4;
  11. // const int MaxIntentos = 30;
  12. // const bool Repeticion = false;
  13. // const string HelpFile = "ayuda.txt";
  14.  
  15. typedef enum { rojo, azul, verde, negro, granate, marron } tColores;
  16.  
  17. // typedef tColores tCodigo[Longitud];
  18.  
  19. /* subprogramas minimos que hay que implementar... piensa en otros adicionales que puedan
  20. ayudar a modularizar mas el programa */
  21.  
  22. // void generar(tCodigo codigo);
  23. // tColores letraAColor(char c);
  24. // char colorALetra(tColores color);
  25. // void jugar(int& numintentos); // Devuelve el numero de intentos (0 si el jugador abandona el juego)
  26. // void leerCodigo(tCodigo codigo, bool& cancelar);
  27. // void chequear(const tCodigo secreto, const tCodigo jugador, int& correctos, int& descolocados);
  28. // void mostrarMovimiento(const tCodigo jugador, int intento, int correctos, int descolocados);
  29. // void mostrarAyuda();
  30.  
  31. tColores numAColor (int numero);
  32.  
  33. int main() {
  34.  
  35. tColores digito;
  36. int numero = 1; //Para hacer la prueba
  37. digito = numAColor (numero);
  38. cout << digito;
  39.  
  40.   return 0;
  41. }
  42.  
  43. tColores numAColor (int numero) {
  44.   tColores digito;
  45.  
  46.  switch (numero) {
  47.   case 0:
  48.      digito = rojo;
  49.      break;
  50.   case 1:
  51.      digito = azul;
  52.      break;
  53.   case 2:
  54.      digito = verde;
  55.      break;
  56.   case 3:
  57.      digito = negro;
  58.      break;
  59.   case 4:
  60.      digito = granate;
  61.      break;
  62.   case 5:
  63.      digito = marron;
  64.   }
  65.  
  66. return digito;
  67. }


En línea

Utilizar palabras para hablar de palabras es como utilizar un lápiz para hacer un dibujo de ese lápiz sobre el mismo lápiz.
ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Duda 'tipo enumerado'
« Respuesta #1 en: 20 Enero 2014, 23:57 pm »

Un ENUM asigna a cada palabra que tiene dentro, un número. Por defecto, las ordena del 0 al N. Puedes cambiar eso, poniendo: rojo = 5, azul = ... .
Creo que además, puedes "incitarle" un orden poniendo rojo=10, azul=20, ...
No se muy bien esto último, pero puedes probar. Pero lo dicho, en un enum, lo transforma a enteros.


En línea

JonaLamper


Desconectado Desconectado

Mensajes: 394



Ver Perfil
Re: Duda 'tipo enumerado'
« Respuesta #2 en: 21 Enero 2014, 00:03 am »

Uhmmm, pero imagina que tengo declaro este Array

typedef tColores tCodigo[4];

Este Array sólo me va a guardar valores del tipo tColores, no? y si los valores del tipo tColores en el fondo son números tipo int, porque el Array no me deja guardar valores tipo int?  :huh:
En línea

Utilizar palabras para hablar de palabras es como utilizar un lápiz para hacer un dibujo de ese lápiz sobre el mismo lápiz.
ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Duda 'tipo enumerado'
« Respuesta #3 en: 21 Enero 2014, 00:09 am »

Vamos a ver. No soy yo experto en enums, pero sé que el uso normal que se le da a enums, es para entender las cosas. Por ejemplo: en una clase, pongo que si recibe clase(0), haga un cout q ponga "HOLA". Si recibe un 1, hace que diga "QUE TAL", y si recibe un 3, dice "ADIOS". Los números no son tan intuitivos, como poner:
Código
  1. enum salidas{ hola, qtal, adios};
Así, pondría: clase(salidas.hola); y sería como enviarle un 0.

(No se si los codes los escribí muy bien, pero el concepto era ese xd)

Si quieres guardar valores tipo int, puedes usar arrays, vectores, listas, etc etc
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
duda con tipo de archivos
Programación Visual Basic
Anteros 0 1,002 Último mensaje 29 Noviembre 2007, 22:04 pm
por Anteros
[BATCH] Duda sobre variables tipo %X:~0,1%
Scripting
8789poli 4 3,206 Último mensaje 24 Mayo 2009, 01:19 am
por leogtz
[Solucionado] Borrar contenido de una variable de tipo string
Programación C/C++
bigfu 4 25,600 Último mensaje 23 Agosto 2011, 22:42 pm
por Queta
Duda Con tipo de Datos Mysql
Bases de Datos
piponsio 2 2,177 Último mensaje 13 Junio 2012, 05:12 am
por piponsio
[DUDA]extraño tipo de encriptacion
Seguridad
cyrus12 2 3,263 Último mensaje 19 Julio 2013, 23:51 pm
por Mr.Byte
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines