Hola.
Estoy intentando leer las n últimas líneas de un fichero, para, posteriormente, almacenarlas en otro.
Por ejemplo, si mi fichero tiene:
hola
adiós
duda
ficheros
punteros
estructuras
y meto el número 3 por consola, después de introducir el nombre del fichero, me debería leer:
ficheros
punteros
estructuras
Y, sin embargo, me lee:
Mi código es:
#include<stdio.h>
#include<stdlib.h>
typedef struct{
int *V;
int lineas;
}Estructura;
char* InicializarCadena();
Estructura Contar(FILE *fp);
void Almacenar(FILE *fp1,FILE *fp2,Estructura aux,int n);
int main (){
FILE *fp1;
FILE *fp2;
int n;
char *fich,c;
Estructura aux;
printf("Introduzca el nombre del fichero: ");
fich=InicializarCadena();
printf("Introduce un numero: ");
fp2
=fopen("Trabajo.txt", "w");
if(fp1==NULL){
}
aux=Contar(fp1);
Almacenar(fp1,fp2,aux,n);
}
char* InicializarCadena(){
int i = 0;
char c, *cad;
cad
= (char*) malloc(sizeof(char));
cad[i] = c;
i++;
cad
= (char*)realloc(cad
, (i
+ 1)*sizeof(char)); }
cad[i] = '\0';
return cad;
}
Estructura Contar(FILE *fp){
int i=0;
Estructura aux;
char c;
aux.lineas=0;
aux.
V=(int*) malloc(sizeof(int));
i++;
if(c=='\n'){
aux.
V=(int*) realloc(aux.
V,(aux.
lineas+1)*sizeof(int));aux.V[aux.lineas]=i;
aux.lineas++;
}
}
aux.lineas++;
return(aux);
}
void Almacenar(FILE *fp1,FILE *fp2,Estructura aux,int n){
char c;
fseek(fp1
,aux.
V[aux.
lineas-n
],SEEK_SET
);
}
}
¿Qué hago mal?
Muchas gracias.
Saludos.