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


  Mostrar Mensajes
Páginas: 1 ... 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 [141] 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 ... 161
1401  Programación / Programación C/C++ / Re: Urgente dudas crear un menu en cpp en: 15 Marzo 2016, 18:59 pm
Y ¿qué tienes hecho hasta ahora?
Muestra lo que tienes hecho, para que tengamos una base con la que trabajar e indica la duda que tengas.
1402  Programación / Programación C/C++ / Re: [C] Explicación de cómo hacer arreglos multidimensionales dinámicos en: 15 Marzo 2016, 18:41 pm
Está bien, pero debes retocar una cosa:
Cuando vas a inicializar las columnas, y, y una de estas inicializaciones falla retornas NULL y regresas, pero esto te crea pérdida de memoria: todos los punteros anteriormente inicializados desaparecerán al salir de la función, pero su memoria seguirá adquirida.

P.ej.: Si la última inicialización de y falla pedrerás la memoria del array principal, x, y de cada una de las ys, menos la última que ha fallado.
1403  Programación / Programación C/C++ / Re: Programar en C o ensamblador para la maquina virtual de java en: 11 Marzo 2016, 13:57 pm
Bueno, tampoco habría tanta ventaja. El compilador de java pasa a bytecode de la máquina java el código y después la máquina java va traduciendo el código máquina de la máquina virtual al código máquina del procesador. Toda una historia muy larga. Y el trabajo este se realiza cada vez que se ejecuta un java. No sé si hace como .NET que traduce al momento y al mismo tiempo guarda en caché las instrucciones en IL para una próxima ejecución más rápida.
En cámbio C, normalmente, lo traduce todo a ensamblador y el linker a código máquina. Esto unido a que tiene un entorno de ejecución pequeño es lo que lo convierte en un lenguaje rápido, pero a la vez inseguro porque su entorno de ejecución hace muy poco para el programador.
1404  Programación / Programación C/C++ / Re: DUDA SOBRE FICHEROS EN C en: 11 Marzo 2016, 00:14 am
Varias cosas:
En base a tu problema, cuándo encuentres el nombre, la siguiente lectura con fscanf te dará la siguiente línea del archivo, el teléfono.

Cuando se trata de recoger una cadena con un formato bien establecido de antemano, nada mejor que scanf o fscanf. La razón es que su cadena de configuración es muy configurable y discrimina muy bien los elementos a tomar.

Por otra parte, los caracteres de nueva línea que están al final de las cadenas.
fgets recoges el carácter de nueva linea, con scanf y fscanf no. Así que según que función uses debes lidiar de una forma u otra con este problema.

Aquí te lo expongo, para ver el efecto del carácter de nueva línea comenta las lineas con scanf y fscanf y descomenta las de fgets.
Código
  1. #include<stdio.h>
  2. #include<string.h>
  3.  
  4. int main() {
  5.    FILE *f;
  6.    char nombre[20];
  7.    char cadena[20];
  8.    int encontrado = 0;
  9.    f = fopen("archivo.txt", "r");
  10.    if(!f) {
  11.        printf("*** Archivo de datos no encontrado ***\n");
  12.        return 1;
  13.    }
  14.    printf("> ");
  15.    // fgets(nombre, 19, stdin);
  16.    scanf("%19s", nombre); while(getchar() != '\n'); // <-- Mejor así. Los nombres no tiene caracteres de nueva linea :D
  17.    do {
  18.        // fgets(cadena, 19, f);
  19.        fscanf(f, "%19s", cadena); fgetc(f);
  20.        if(strcmp(cadena, nombre) == 0)
  21.            encontrado = 1;
  22.    } while(!feof(f) && !encontrado);
  23.    if(encontrado) {
  24.        printf("Nombre   : %s\n", nombre);
  25.        // fgets(cadena, 19, f);
  26.        fscanf(f, "%19s", cadena); fgetc(f);
  27.        printf("Telefono : %s\n", cadena);
  28.    }
  29.    else printf("No se ha encontrado el registro.\n");
  30.    fclose(f);    
  31.    return 0;
  32. }
  33.  
1405  Programación / Programación C/C++ / Re: Asignar memoria dinamicamente en C en: 10 Marzo 2016, 13:47 pm
Si le pasas el puntero a una función para que ésta le asigne un espacio en la memoria sí debes pasar la dirección del puntero como argumento (un puntero a puntero).

O puedes hacer una función que dentro de ella declare un puntero temporal y le asigne la memoria, después devuelves el puntero con el return y lo recoges en el main con una variable puntero.
1406  Programación / Programación C/C++ / Re: Duda sobre programa en C con STRINGS en: 10 Marzo 2016, 09:31 am
Ah, ok, entonces sí  :rolleyes:
1407  Programación / Programación C/C++ / Re: Ahorcado en c++ en: 10 Marzo 2016, 09:25 am
No, pero tampoco son tan difíciles de hacer:
Con una libreta de hojas a cuadritos y un lápiz haz el dibujo de como debe ser el ahorcado.
A cada cuadro que tengas dibujado buscas un carácter imprimible (no hace falta que sean letras, en ASCII hay caracteres para dibujar) que más se asemeje a la forma del dibujo del cuadro.
En código creas una tabla de dimensiones iguales a los cuadros que han hecho los dibujos y metes esos caracteres dentro.
Después, durante el juego, vas pintando las porciones del ahorcado (metiendo el carácter dibujado o un carácter blanco) dependiendo del número de fallos del jugador.

Si lo haces pequeño puedes poner el dibujo en la parte de arriba de la ventana y el texto de juego abajo. Si ya te ves con corazón de hacerlo más complicado puedes poner el dibujo a la izquierda o a la derecha de la ventana teniendo en cuenta que la pantalla se va a pintar línea a línea, es decir:
deberás pintar la primera línea del dibujo y escribir la primera línea del texto del juego; pasar a la segunda línea de la ventana, dibujar la segunda línea del ahorcado y escribir la segunda línea del texto; y así ir repitiendo hasta terminar de pintar la pantalla.
1408  Programación / Programación C/C++ / Re: Duda sobre programa en C con STRINGS en: 9 Marzo 2016, 21:01 pm
No lo has entendido:
Usar fflush(stdin); es una muy mala práctica.
1409  Programación / Programación C/C++ / Re: Ahorcado en c++ en: 9 Marzo 2016, 20:57 pm
Usa sdl2 para el apartado gráfico, o algún ide que te permita fácilmente construir ventanas, o siempre pueded hacer un dibujito con caracteres.
1410  Programación / Programación C/C++ / Re: Evitar leer el salto de línea cuando leemos cadenas en C en: 8 Marzo 2016, 22:22 pm
La función while en este caso lo que hace es ir tomando caracteres del buffer del teclado y a cada repetición no hace nada, que es lo que marca el punto y coma.

La instrucción se irá repitiendo hasta que recoja el carácter '\n' (lo habrá sacado del buffer) y según la condición, como el carácter devuelto por getchar() será igual a '\n' se va a parar la repetición del while y el programa continuará con el buffer de teclado vacío.
Páginas: 1 ... 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 [141] 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 ... 161
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines