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

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


  Mostrar Mensajes
Páginas: 1 ... 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 [81] 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 ... 161
801  Programación / Programación C/C++ / Re: Escribir funcion equivalente en C en: 23 Mayo 2017, 18:15 pm
¿Sabes que hace cada instrucción?
802  Programación / Programación C/C++ / Re: Buscador (C) en: 23 Mayo 2017, 16:24 pm
El programa todavía sigue teniendo muchos errores. Pero más grave aún es que el propio archivo de datos está mal formateado.

Lo he estado revisando y en las filas de números usas como separador la coma ',' pero también usas como separador de millares la coma ','. Puedes decir que el separador de elementos no es solo una coma, sino una coma y un espacio; pero sigue habiendo datos erróneos, como por ejemplo el '3,2' '3,3' '1,25'. Si hay que interpretar que eso son números decimales la cosa empeora más ya que si un número tiene 3 decimales ¿cómo lo distingues de un entero de millares? Si son números separados hay un problema de formato.

La solución que te doy es que uses como único separador de datos la coma y para los números que sean en formato C. Así te facilitarás mucho la vida. Si después quieres representarlos de forma entendible para humanos ya crea las rutinas necesarias.

Por cierto, deberías pensar en separar tus programas en subrutinas. Te ahorrarías instrucciones, estaría más ordenado y facilitarías su lectura.
803  Programación / Programación C/C++ / Re: Convertir int dia, mes, año a char en C. en: 23 Mayo 2017, 00:44 am
Prueba con
Código
  1. fprintf(archivo, "%d/%d/%d", dia, mes, anyo);

o usa sprintf para crear una cadena
Código
  1. sprintf(cadena, "%d/%d/%d", dia, mes, anyo);
804  Programación / Programación C/C++ / Re: Convertir int dia, mes, año a char en C. en: 22 Mayo 2017, 23:49 pm
¿Así?

Código
  1. printf("%d/%d/%d", dia, mes, anyo);
805  Programación / Programación C/C++ / Re: Buscador (C) en: 22 Mayo 2017, 23:47 pm
Sí, es grande, no es una cosa que se haga en diez minutos.
Lo malo es que no has sabido aprovechar C: Lo bueno de este lenguaje es que es pequeño y por ende su biblioteca también es pequeña, pero hace muchas cosas.
Por ejemplo, para separar las palabras de una cadena, y sobre todo si tienen un formato bien definido como es esta del texto, tienes la función strtok, de string.h que te devuelve un token de la línea cada vez que es llamada.

Código de ejemplo de cómo podrías usarlo en tu programa:
strtok es destructivo por tanto modifica la línea de búsqueda
strtok tiene una forma peculiar de funcionar. Aquí explica como usarla: http://c.conclase.net/librerias/?ansifun=strtok

Código
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4.  
  5. char *linea="DAWN mission NSTAR, Resistojet, Radioisotope, ArcJet";
  6.  
  7. int main() {
  8.    unsigned pos = 0;
  9.    char nombre[255];
  10.    char *token;
  11.    char *c;
  12.    char *linea_busqueda;
  13.  
  14.    linea_busqueda = malloc((strlen(linea)+1)*sizeof(char));
  15.    strcpy(linea_busqueda, linea);
  16.  
  17.    printf("Busqueda: ");
  18.    fgets(nombre, 255, stdin);
  19.    if((c = strchr(nombre, '\n')))
  20.        *c = '\0';
  21.  
  22.    token = strtok(linea_busqueda, ",;");
  23.  
  24.    while(token) {
  25.        fprintf(stderr, "%d\n", pos);
  26.        while(*token == ' ') ++token;
  27.  
  28.        if(*token == '\0' || strcmp(token, nombre))
  29.            token = strtok(NULL, ",;");
  30.        else
  31.            break;
  32.  
  33.        ++pos;
  34.    }
  35.  
  36.    if(token)
  37.        printf("Elemento encontrado en posicion %d", pos);
  38.    else
  39.        printf("Elemento no encontrado");
  40. }

Otra cosa. Para capturar números que eran cadenas y convertirlos en número de verdad tienes más funciones como sscanf (nótese las 2 eses al principio). Ejemplo:
Código
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. int main() {
  5.    char *numero_real = "2.14e+10";
  6.    double numero;
  7.  
  8.    sscanf(numero_real, "%lf", &numero);
  9.  
  10.    printf("%lf", numero);
  11. }

806  Programación / Programación C/C++ / Re: Buscador (C) en: 21 Mayo 2017, 19:30 pm
Estos for están mal construidos.
Inicialización, comprobación y actualización.
807  Programación / Programación C/C++ / Re: Que diferencia hay entre una funcion void e int?? en: 21 Mayo 2017, 15:22 pm
Como te acqbas de iniciar te diré que debes hacer la función del mismo tipo que regresarás con el return a final de ella. Si la función no devolverá nada debe ser void.
Si te fijas en los mensajes del compilador te lanzará quejas por no devolver nada cuando hay que hacerlo.
La verdad es mucho más profunda pero a nivel de quien acaba de empezar basta eso.
808  Programación / Programación C/C++ / Re: Buscador (C) en: 20 Mayo 2017, 19:29 pm
Sobre esa parte que comentas. Si encuentras un error en la apertura del archivo debes detener el programa para que no siga actuando sobre ese archivo, sin embargo solo marcas el error pero dejas al programa que continúe.
809  Programación / Programación C/C++ / Re: Lenguaje C : Ayuda con vectores porfavor en: 20 Mayo 2017, 17:58 pm
Si es así:
1. Consigue las tres palabras a buscar
2. Consigue el número para modificar
3. Abre el archivo para lectura/escritura
4. Lee una frase del archivo a una cadena
5. Mientras no hayas llegado al final del archivo
5.1. Consigue la primera palabra de la cadena
5.2. Consigue la segunda palabra de la cadena
5.3. Consigue la tercera palabra de la cadena
5.4. Compara las palabras conseguidas con las que has conseguido del usuario
5.4.1. Si todas se corresponden regresa al archivo tantos bytes como de largo es la frase que leíste
5.4.2. Escribe una nueva frase como lo haces en NuevaFila() pero en vez del 0 incluyes el número que te ha dado el usuario
5.5. Lees una nueva frase del archivo
6. Cierra el archivo
810  Programación / Programación C/C++ / Re: dibuje ese número en la pantalla C++ en: 20 Mayo 2017, 12:49 pm
Una forma muy fácil de dibujar caracteres por pantalla es hacer una tabla de caracteres con cada uno de los caracteres. Por ejemplo:

Código:
char caracter_a[8][9] = {
    "        ",
    "        ",
    " XXXX   ",
    "    XX  ",
    " XXXXX  ",
    "XX  XX  ",
    " XXX XX ",
    "        "};

Una vez que tengas todas los caracteres ya solo debes crear una función que los imprima.

El carácter lo he sacado del manual del amstrad CPC 464, sección 'Conjunto de caracteres gráficos específicos de la máquina'
Páginas: 1 ... 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 [81] 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 ... 161
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines