• Sábado 14 de Diciembre de 2024, 17:29

Autor Tema:  C Ficheros Lectura Escritura  (Leído 1522 veces)

nsines

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
C Ficheros Lectura Escritura
« en: Domingo 25 de Mayo de 2008, 07:58 »
0
El siguiente programa deberia loeer un archivo de 500 registros,
el primer campo es un char, el segundo y el tercero son Int. Lo que tengo que hacer es convertir a string el primer campo int y que quede como tal en el archivo de salida.
Tengo el siguiente codigo:

Código: Text
  1.  
  2. #include<conio.h>
  3. #include<stdio.h>
  4. #include<stdlib.h>
  5. #include<string.h>
  6. #define MAXREG 500
  7. typedef char string[80];
  8.  
  9. typedef struct {
  10. char palabra[15];
  11. int id;
  12. int Numfotolog;
  13. } archivo;
  14.  
  15. typedef struct {
  16. int reg;
  17. archivo pal[MAXREG];
  18. } fichero;
  19.  
  20. typedef struct {
  21. char palabra[15];
  22. char id[10];
  23. int Numfotolog;
  24. }archivo2;
  25.  
  26. typedef struct {
  27. int reg;
  28. archivo2 pal2[MAXREG];
  29. } fichero2;
  30.  
  31.  
  32. void main (fichero *entrada, fichero2 *salida)
  33. { FILE *fin; FILE *fout;
  34.  int i=0;
  35.  char cadena[100];
  36.  fin=fopen("c:/entrada.txt","r");
  37.  fout=fopen("c:/salida.txt", "w");
  38.  if (fin==NULL)
  39.  { printf("Error abriendo ficheros\n");
  40.  exit (-1);
  41.  }
  42. while (fscanf(fin,"%s",entrada->pal[i]) !=EOF)
  43. { /*fscanf(fin, "%s", entrada->pal[i].palabra);*/
  44.   fprintf(fout,"%s",salida->pal2[i].palabra);
  45.   fscanf(fin,"%d\n",entrada->pal[i].id);
  46. [b]  itoa(entrada->pal[i].id,cadena,10);
  47.   strcpy(salida->pal2[i].id,cadena);[/b]
  48.   fprintf(fout,"%s",salida->pal2[i].id);
  49.   fscanf(fin,"%d",entrada->pal[i].Numfotolog);
  50.   fprintf(fout,"%d",salida->pal2[i].Numfotolog);
  51.  i++;
  52.   }
  53. entrada->reg=i;
  54. salida->reg=i;
  55. fclose (fin);
  56. fclose(fout);
  57. }
  58.  
  59.  
Que me arroja el siguiente error:
2699411829EXE2825726994ght © 1988 Borland Intl.2597246Null pointer assignment Divide error
Abnormal program termination
h§2570526948vide error
Abnormal program termination
h§2870424946m termination
h§3438528@14582-2508801284500000000000


Podrian por favor darme una mano para hacer funcionar mi programa? Gracias!

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: C Ficheros Lectura Escritura
« Respuesta #1 en: Domingo 25 de Mayo de 2008, 09:50 »
0
Depuralo, lee el error que tira el compilador:
Null pointer assignment

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

nsines

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: C Ficheros Lectura Escritura
« Respuesta #2 en: Lunes 26 de Mayo de 2008, 16:51 »
0
Estará relacionado al uso del strcpy() ?
al uso del itoa() ???
Por favor ayudneme!!
Gracias.!

fachamix

  • Miembro MUY activo
  • ***
  • Mensajes: 173
  • Nacionalidad: ar
    • Ver Perfil
Re: C Ficheros Lectura Escritura
« Respuesta #3 en: Martes 27 de Mayo de 2008, 02:40 »
0
No soy el mejor programador de C, pero no creo haber visto esto antes en un programa:

void main (fichero *entrada, fichero2 *salida)

mi pregunta seria, ¿como haces para invocar a un programa con parametros de este tipo??

creo que deberias copiarnos bien los resultados de tu compilador.

no se entiende nada
La muerte vive celosa, de mi amada flor la vida. Dicen que me anda buscando, ojala si un dia me pilla. Me alle MACHAO Y CANTANDO PA QUE SE MUERA DE ENVIDIA

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: C Ficheros Lectura Escritura
« Respuesta #4 en: Martes 27 de Mayo de 2008, 08:10 »
0
Obviamente que lo que indica fachamix - cambiar los parametros de main - es una aberracion, en el primer parametro tendras un numero (argc) y en el segundo un doble puntero a char (argv).

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.