• Viernes 8 de Noviembre de 2024, 11:50

Mostrar Mensajes

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


Temas - nsines

Páginas: [1]
1
C/C++ / C Ficheros Lectura Escritura
« en: Domingo 25 de Mayo de 2008, 07:58 »
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!

Páginas: [1]