Archivos_problemas con puntero
Publicado por Omar (1 intervención) el 02/07/2013 04:06:23
Hola.
Estoy tratando de hacer un programa que luego de verificar que empieza una nueva linea en un archivo, verificara que los 2 caracteres a continuacion es un numero o letra, luego si es un numero lo replazara por un caracter determinado y creara un nuevo archivo modificado. El problema que tengo es que al momento de verificar los caracteres siguientes luego de la nueva linea uso la funcion fegetc() la cual desplaza el puntero, lo cual hace que en el nuevo archivo se omitan los caracteres que se validaron. existe alguna de forma de verificar los caracteres siguientes sin desplazar el puntero del archivo ? intente creando un punturo auxiliar 'ptr' pero aun asi el puntero principal se desplaza.
int main(int argc,char *argv[]){
FILE *archivo;
FILE *t;
FILE *ptr;
char c;
int cont=0;
char *archi;
char archif[20] = "Data.txt";
if (argc != 2){ printf("comando: fixtxt archi.txt\n");}
else{
archi = argv[1];
archivo = fopen(archi,"r");
if(archivo!=NULL) {
if((t=fopen(archif,"w"))==NULL){
printf("Error de creacion ... \n");
getch();
return 0;
}
/* archivo creado y listo para ingresar datos */
while(!feof(archivo)){
c=fgetc(archivo);
cont = c == 10 ? ++cont : cont;
if(c == 10){
ptr = archivo;
printf( "'%c' ", fgetc(ptr) );
}
fputc(c,t);
}
fclose(archivo);
fclose(t);
printf("Numero de lines en el archivo: '%i'",cont);
}
else{printf("Error de apertura...\n");}
getch();
return 0;
}
}
Estoy tratando de hacer un programa que luego de verificar que empieza una nueva linea en un archivo, verificara que los 2 caracteres a continuacion es un numero o letra, luego si es un numero lo replazara por un caracter determinado y creara un nuevo archivo modificado. El problema que tengo es que al momento de verificar los caracteres siguientes luego de la nueva linea uso la funcion fegetc() la cual desplaza el puntero, lo cual hace que en el nuevo archivo se omitan los caracteres que se validaron. existe alguna de forma de verificar los caracteres siguientes sin desplazar el puntero del archivo ? intente creando un punturo auxiliar 'ptr' pero aun asi el puntero principal se desplaza.
int main(int argc,char *argv[]){
FILE *archivo;
FILE *t;
FILE *ptr;
char c;
int cont=0;
char *archi;
char archif[20] = "Data.txt";
if (argc != 2){ printf("comando: fixtxt archi.txt\n");}
else{
archi = argv[1];
archivo = fopen(archi,"r");
if(archivo!=NULL) {
if((t=fopen(archif,"w"))==NULL){
printf("Error de creacion ... \n");
getch();
return 0;
}
/* archivo creado y listo para ingresar datos */
while(!feof(archivo)){
c=fgetc(archivo);
cont = c == 10 ? ++cont : cont;
if(c == 10){
ptr = archivo;
printf( "'%c' ", fgetc(ptr) );
}
fputc(c,t);
}
fclose(archivo);
fclose(t);
printf("Numero de lines en el archivo: '%i'",cont);
}
else{printf("Error de apertura...\n");}
getch();
return 0;
}
}
Valora esta pregunta


0