C/Visual C - Archivos_problemas con puntero

 
Vista:

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;
}
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Archivos_problemas con puntero

Publicado por Chema (234 intervenciones) el 02/07/2013 19:38:21
!Menudas "ideitas" llevas!
cont = c == 10 ? ++cont : cont;
if(c == 10){
ptr = archivo;

Carga el fichero entero en un buffer, la terminación \n \t te indicarán el final de linea, sustituye , y escribe el bufer en disco.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar