Hola.
Estoy intentando leer las n últimas líneas de un fichero, para, posteriormente, almacenarlas en otro.
Por ejemplo, si mi fichero tiene:
Código:
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:
Cita: ficheros
punteros
estructuras
Y, sin embargo, me lee:
Mi código es:
Código C:
Ver original#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.