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

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 [7] 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 ... 38
61  Programación / Programación C/C++ / Re: Problema conversión Unsigned char a char en: 19 Enero 2013, 04:13 am
Entonces no veo ningun inconveniente, ya que esto deberia funcionar:
Código
  1. for(i=0;i<10;i++)
  2. {
  3.   answer[i]=(char)buf[i];
  4.  
  5. }

Subi el codigo q tenes..Saludos


PD: tenes la clase string
62  Programación / Programación C/C++ / Re: Programa Loteria en: 19 Enero 2013, 04:05 am
La verdad no entiendo bien cual es el problema, trata de detallar mas

Pregunta: las dos funciones abren distintos archivos??


Saludos

PD: cuando escribis codigo, arriba a la derecha hay algo que dice GeSHi, elegi donde dice C y pone el codigo dentro de [ code=c ] /* aca va codigo*/[ /code ]... El moderador te lo advirtio, si se lo toma mal por ahi te cierra el post xD
63  Programación / Programación C/C++ / Re: Problema conversión Unsigned char a char en: 19 Enero 2013, 03:51 am
Hola! answer como esta declarado???? Si answer esta declarado como:
Código
  1. answer[N]; // N tamaño del arreglo
hacer esto es un error:
Código
  1. answer=(char *)buf;


Subi mas codigo para ayudarte mejor.. y a q llamas "vacio"??

SAludos

PD: si estas en C++ existe la clase string
64  Programación / Programación C/C++ / Re: Programa Loteria en: 19 Enero 2013, 00:08 am
A pesar de que en la apertura del archivo no aclara el modo "b"(binario), lo mas probable es que este no contenga formato ya que utiliza funciones como fwrite y fread(fscanf en este caso no funcionario)



Saludos
65  Programación / Programación C/C++ / Re: [Ayuda] Matriz para rellenar una tabla en: 18 Enero 2013, 18:43 pm
Hola! en el printf le pasas los argumentos f,c,i+1,j+1 pero solo utilizas dos formatos de conversion en "Escribe el numero del alumno %d de la asignatura %d"


Citar
Necesito llenar una tabla para alumnos matriculados pero no soy capaz de acabarlo
no se a que te referis con llenar, con lo que hiciste lo estas haciendo correctamente


Saludos

66  Programación / Programación C/C++ / Re: Como utilizar dos veces la funcionn srand(time(NULL)) en: 17 Enero 2013, 20:35 pm
La funcion srand solo tenes que usarla una vez y, para evitar confuciones, al principio del programa.. AL llamar tantas veces a srand estas reiniciando la semilla, lo cual provoca que se repitan los numeros


Saludos
67  Programación / Programación C/C++ / Re: Programa Loteria en: 17 Enero 2013, 20:13 pm
Citar
violación del segmento
este error se debe seguro a un mal uso de los arreglos...

Citar
Viendo nuestro programa nos podrías poner como harías tu el procedimiento buscar
solo modificando las cosas q te marque deberia andar:
Código
  1. void buscar(struct fnum elegido[TAM], char *fichero1, char *fichero2, char *fichero3) { //para buscar los numeros en fichnumeros
  2.        struct cadenacar categoria[TAM];
  3.        char lugar[30];
  4.        int i, x;
  5.        int seguir;
  6.        int numero, serie;
  7.        struct registro registro;
  8.        FILE *result; /* result apunta a "result.dat"*/
  9.        FILE *fich;   // fich apunta a "fichnumerosCompletos.dat"
  10.        FILE *premiotxt;  // premiostxt apunta a "premios.txt"
  11.  
  12.     /* Apertura en modo lectura-escritura. */
  13.     fich = fopen("fichnumerosCompleto.dat", "r");
  14.     result = fopen("result.dat", "wr");
  15.     premiotxt = fopen("premios.txt", "w");
  16.  
  17.        if (result != NULL && fich !=NULL && premiotxt !=NULL);{ /*Comprobación*/
  18.  
  19.        seguir = 1;
  20.            do {
  21.                fread(&registro, sizeof(struct registro), 1, fich);
  22.                for(i =0; i<TAM; i++){
  23.                if ((elegido[i].numero == registro.billete.numero) && (elegido[i].serie == registro.billete.serie)) {
  24.                  //almacena lugar
  25.                        fprintf(result, "%d\t %d\t %s\n",registro.billete.numero, registro.billete.serie,registro.lugar);
  26.                        numero = registro.billete.numero;
  27.                        serie  = registro.billete.serie;
  28.                        strcpy(lugar,registro.lugar);
  29.                        seguir = 0;
  30.                        break; // este break es para que no continue con el for, ya que se encontro el registro
  31.                        }
  32.                  }
  33.                }while (!feof(fich) && (seguir==1));
  34.        fclose(fich);
  35.        fclose(result);
  36.        }
  37. /* ...........*/
la otra mitad de buscar() te toca a vos ya que es parte de la logica del programa, ese es tu trabajo

Otra cosa fijate que en el main tambien tenes errores con los arreglos, por ejemplo en:
Código
  1.  for (i=0; i< TAM; i++){
  2.     premios.numero = azar_numero(intervnum)%9999 +1;
  3.     premios.serie = azar_serie(intervserie);

SAludos
68  Programación / Programación C/C++ / Re: Programa Loteria en: 16 Enero 2013, 23:20 pm
Citar
#include <ctime>
este header es para C++ no C


mortaz tu principal problema es que no sabes manejar los arreglos. Errores:

- La funcion buscar recibe como parametro struct fnum elegido[TAM] que es un arreglo de estructuras. Entonces si es un arreglo vos no podes hacer:
Código
  1. elegido.numero == registro.billete.numero) && (elegido.serie == registro.billete.serie
la forma correcta seria:
Código
  1. elegido[i].numero == registro.billete.numero) && (elegido[i].serie == registro.billete.serie

- Si la estructura fnum tiene dos campos de tipo int, porque declaras en buscar() a numero y serie como arreglos???
Código
  1. int numero[TAM], serie[TAM];//???????
Al declararlos como arreglos, esto es un error:
Código
  1.                        numero = registro.billete.numero;
  2.                        serie  = registro.billete.serie;
solo hacia falta que numero y serie sean ENTEROS

-
Citar
lugar = *registro.lugar;
esto te lo aclare antes porque es un error

- el while esta demas, con solo poner la condicion de seguir en el do-while alcanza:
Código
  1. do {
  2. /*............*/
  3. } while(!feof(fich) && (seguir==1));


Saludos
69  Programación / Programación C/C++ / Re: [Ayuda] Punteros y Arrays en C en: 16 Enero 2013, 19:41 pm
Pero el 3 esta en la ultima posicion de la matriz, cual seria el movimiento que queres hacer?? despues de encontrar el 3 que posicion seria la siguiente para el recorrido??

Saludos
70  Programación / Programación C/C++ / Re: Programa Loteria en: 15 Enero 2013, 18:54 pm
Te marco los errores

- para comparar variables tenes que usar el "==" y no el "="

- para copiar un arreglo a otro tenes que usar la funcion strcpy(). No podes hacer:
Código
  1. lugar[30] = *registro.lugar;

- En vez del while deberias usar un if


Finalmente todos eso seria mejor ponerlo en un do-while

Código
  1. /*........*/
  2. else {
  3. do {
  4.  fread(...); /* lee un registro */
  5.  if(....) { // compara si es el registro buscado
  6.     strcpy(....); /* haces la copia del lugar */
  7.     seguir=0; /* flag para salir del do-while */
  8.  }
  9. }while(seguir);
  10. }


Saludos
Páginas: 1 2 3 4 5 6 [7] 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 ... 38
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines