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:
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MAXREG 500
typedef char string[80];
typedef struct {
char palabra[15];
int id;
int Numfotolog;
} archivo;
typedef struct {
int reg;
archivo pal[MAXREG];
} fichero;
typedef struct {
char palabra[15];
char id[10];
int Numfotolog;
}archivo2;
typedef struct {
int reg;
archivo2 pal2[MAXREG];
} fichero2;
void main (fichero *entrada, fichero2 *salida)
{ FILE *fin; FILE *fout;
int i=0;
char cadena[100];
fin=fopen("c:/entrada.txt","r");
fout=fopen("c:/salida.txt", "w");
if (fin==NULL)
{ printf("Error abriendo ficheros\n");
exit (-1);
}
while (fscanf(fin,"%s",entrada->pal[i]) !=EOF)
{ /*fscanf(fin, "%s", entrada->pal[i].palabra);*/
fprintf(fout,"%s",salida->pal2[i].palabra);
fscanf(fin,"%d\n",entrada->pal[i].id);
[b] itoa(entrada->pal[i].id,cadena,10);
strcpy(salida->pal2[i].id,cadena);[/b]
fprintf(fout,"%s",salida->pal2[i].id);
fscanf(fin,"%d",entrada->pal[i].Numfotolog);
fprintf(fout,"%d",salida->pal2[i].Numfotolog);
i++;
}
entrada->reg=i;
salida->reg=i;
fclose (fin);
fclose(fout);
}
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-2508801284500000000000Podrian por favor darme una mano para hacer funcionar mi programa? Gracias!