Autor
|
Tema: Duda 'tipo enumerado' (Leído 1,578 veces)
|
JonaLamper
Desconectado
Mensajes: 394
|
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. #include <iostream> #include <string> #include <fstream> #include <ctime> #include <cstdlib> using namespace std; // const int NumColores = 6; // const int Longitud = 4; // const int MaxIntentos = 30; // const bool Repeticion = false; // const string HelpFile = "ayuda.txt"; typedef enum { rojo, azul, verde, negro, granate, marron } tColores; // typedef tColores tCodigo[Longitud]; /* subprogramas minimos que hay que implementar... piensa en otros adicionales que puedan ayudar a modularizar mas el programa */ // void generar(tCodigo codigo); // tColores letraAColor(char c); // char colorALetra(tColores color); // void jugar(int& numintentos); // Devuelve el numero de intentos (0 si el jugador abandona el juego) // void leerCodigo(tCodigo codigo, bool& cancelar); // void chequear(const tCodigo secreto, const tCodigo jugador, int& correctos, int& descolocados); // void mostrarMovimiento(const tCodigo jugador, int intento, int correctos, int descolocados); // void mostrarAyuda(); tColores numAColor (int numero); int main() { tColores digito; int numero = 1; //Para hacer la prueba digito = numAColor (numero); cout << digito; return 0; } tColores numAColor (int numero) { tColores digito; switch (numero) { case 0: digito = rojo; break; case 1: digito = azul; break; case 2: digito = verde; break; case 3: digito = negro; break; case 4: digito = granate; break; case 5: digito = marron; } return digito; }
|
|
|
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
Mensajes: 3.412
ASMático
|
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
Mensajes: 394
|
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?
|
|
|
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
Mensajes: 3.412
ASMático
|
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: 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
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
duda con tipo de archivos
Programación Visual Basic
|
Anteros
|
0
|
1,109
|
29 Noviembre 2007, 22:04 pm
por Anteros
|
|
|
[BATCH] Duda sobre variables tipo %X:~0,1%
Scripting
|
8789poli
|
4
|
3,495
|
24 Mayo 2009, 01:19 am
por leogtz
|
|
|
[Solucionado] Borrar contenido de una variable de tipo string
Programación C/C++
|
bigfu
|
4
|
26,213
|
23 Agosto 2011, 22:42 pm
por Queta
|
|
|
Duda Con tipo de Datos Mysql
Bases de Datos
|
piponsio
|
2
|
2,337
|
13 Junio 2012, 05:12 am
por piponsio
|
|
|
[DUDA]extraño tipo de encriptacion
Seguridad
|
cyrus12
|
2
|
3,535
|
19 Julio 2013, 23:51 pm
por Mr.Byte
|
|