Ficheros: La primera mitad será la segunda

Jesús Palacio

/*Coge un fichero “lo parte en dos trozos” y los escribe en un uno nuevo al revés, escribiendo primero la segunda parte y después la primera, todo ello en una función.*/

#include <stdio.h>
void fichero( FILE *f);

int main ()
{
FILE *f;
f=fopen(“fichero1.txt”, “r”);
fichero(f);
fclose(f);
return 0;
}

void fichero(FILE *f)
{
FILE *g;
char c;
int t=0, i=0;
g=fopen(“fichero2.txt”, “w”);

while((c=getc(f))!=EOF) t++;
rewind(f);

if(t%2==0)
{
fseek(f,t/2, SEEK_SET);
while((c=getc(f))!=EOF)
fprintf(g, “%c”, c);
rewind(f);
while(i<(t/2))
{
c=getc(f);
fprintf(g, “%c”, c);
i++;
}
}
else
{
fseek(f,(t+1)/2, SEEK_SET);
while((c=getc(f))!=EOF)
fprintf(g, “%c”, c);
rewind(f);
while(i<=((t-1)/2))
{
c=getc(f);
fprintf(g, “%c”, c);
i++;
}
}
return;
}

Esta entrada fue publicada en Informática e Internet. Guarda el enlace permanente.

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s