Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - NOIS

#41
Aquí no se hacen tareas, muestra tu código y haz preguntas más concretas si no entiendes algo.
#42
No he probado el código, pero creo que el error está en que siempre evalúas el menor, nunca si es igual, por lo que es incapaz de coger los valores repetidos y actuar con "coherencia", como se puede ver :xD.

Espero que te ayude.

Saludos!
#43
Si quieres obtener un valor de un método, siempre que este devuelva algún valor, es tan sencillo como crear una variable y darle como valor el método en sí.

EJEMPLO:
Código (cpp) [Seleccionar]

string str = "123";
int i = str.length();


En este caso, "i" valdrá 3, ya que es la longitud/cantidad de caracteres de "str".

Espero que te ayude.

Saludos!
#44
Ya encontré una solución más sencilla que lo que pretendía hacer, la dejo aquí por si a alguien le interesa.

No lo sabía, pero ayer buscando vi que hay un evento en A5 llamado ALLEGRO_EVENT_KEY_CHAR que registra los caracteres generados por la pulsación de las teclas y devuelve su valor en ASCII, así se puede crear una entrada de texto en tiempo real por si quisieramos pedir algún dato a los usuarios.

Un ejemplo podría ser este:

Código (cpp) [Seleccionar]

if(ev.type == ALLEGRO_EVENT_KEY_CHAR)
        {       
         end = str.strlength();     
             if(key[BACKSPACE]) str = str.substr(0, end-1); // Para borrar el ultimo caracter si se presiona la tecla "BACKSPACE".
             else
             {
                  str += (char)ev.keyboard.unichar;
             }
        }


Espero que a alguien le sirva  ;)

Saludos!
#45
Para solucionar el caso 3, en la comparación que realizas entre el color buscado y los almacenados en "colores" quita el "break;" del bucle, y suma 1 a un contador por cada validación correcta, luego usas el contador así: "printf(" existen: %d", cont);

Eso te dará la cantidad.

Código (cpp) [Seleccionar]

char colores[5][100],buscar[100];
int posicion=0,contador=0,x,y;
int op;
// CONTADOR
int cont = 0;
char exit;

Código (cpp) [Seleccionar]

case 3://consulta particular  
posicion=-1;
                        printf("consultar color especifico y cuantos hay: ");
                        scanf("%s",buscar);
                        for(x=0;x<contador;x++)
                        {
                             if(strcasecmp(buscar,colores[x])==0)
                             {
                                  cont++;
                                  posicion=x;
                             }
                        }
                        if(posicion!=-1)
                        {
                         printf(" color corecto: \n");
                         printf (" existen %d %s\n",cont, buscar);
                         cont = 0;
                        }
                          else
                           printf("El color no existe \n");
             break;

Tras mostrar la cantidad vuelves a poner el contador a 0 para poder volver a usarlo.

El caso 6 es muy sencillo, simplemente utiliza "return 0;" así saldrá del programa.
Código (cpp) [Seleccionar]

case 6:
        return 0;
        break;


Con el caso 5 no puedo ayudarte, nunca he hecho nada así y menos en C, yo soy de C++.

Espero haberte ayudado.

Saludos!
#46
Podrías utilizar puertos, habilitar un puerto distinto en cada programa para datos y enviar la información.

Otra forma, tal vez menos liosa, sería pasar la dirección de memoria de la variable a un archivo de texto y desde el otro programa leerla y acceder al valor que almacena esa dirección.

Espero que te ayude.

Saludos!
#47
Hola a todos,
Estoy intentando crear mis propias cajas de texto con C++/Allegro5 y necesitaría saber como detectar si una tecla está activa, como BLOQ_MAYUS o BLOQ_NUM sin tener que esperar a que el usuario haya pulsado la tecla para evaluar su estado.

Necesito un método que no sea el de Windows, uno propio de Allegro o uno de C++ que valga para varias plataformas.

Gracias de antemano.
#48
Si, buscando por internet encontré esa solución con la librería locale.h, pero me da error. No encontré nada de que hubiera que linkear ninguna librería al proyecto ni nada parecido.
#49
Ya, por eso no entiendo que pueda manipular caracteres sin problemas pero no caracteres y cadenas cuando encuentra un caracter especial.
#50
Cita de: _Enko en 20 Noviembre 2014, 16:47 PM
Pues creo que la solución es utilizar codificación UNICODE. Si mal no recuerdo la librería era wchar.h

http://www.cplusplus.com/reference/cwchar/

Pero tambien vas a tener que guardar el codigo fuente como UNICODE y tambien agregar parametros al compilador.

Gracias, le echaré un vistazo.
____________________________________________________________________
Cita de: ivancea96 en 20 Noviembre 2014, 15:09 PM
Sin saber ningún dato del error ni de la linea que lo genera, pues. Tampoco sé que es convertir un caracters a cadena. (? 'a' -> "a" ?)

Con convertir en una cadena me refiero a que yo he creado algo como esto:
Código (cpp) [Seleccionar]

using namespace std;
...
string conversion[256]={ "aaa","bbb","ccc","..."};

y si el valor del caracter registrado es 25 lo sustituye por el la cadena nº 25 de "conversion".