lunes, 16 de enero de 2012

Ficheros 3


#include <stdio.h>
#include <stdlib.h>


int main(){

  FILE *f, *g;
  char nomFich[50], nomFich2[50];
  char c;
  double res, n;

  printf("Introduce el nombre del fichero: ");
  scanf("%s", nomFich);
  f=fopen(nomFich, "r");

  if (f==NULL)
    printf("El fichero \'%s\' no se ha podido abrir.", nomFich);
  else {
    printf("Introduce el nombre del fichero resultado: ");
    scanf("%s", nomFich2);
    g=fopen(nomFich2, "w");
    if (g==NULL) {
      printf("El fichero \'%s\' no se ha podido abrir.", nomFich2);
      fclose(f);
    }
    else {
      fscanf(f, "%lf%c", &res, &c);                  /*Leer primer número y espacio o \n */
      while (!feof(f)){
        fprintf(g,"%7.2f ", res);
        while (!feof(f) && (c!='\n')){
          fscanf(f, "%c%lf",&c,&n);                  /*Leer operación y número */
          fprintf(g,"%c %7.2f ",c, n);
          switch (c) {
            case '+': res=res+n;break;
            case '-': res=res-n;break;
            case '*': res=res*n;break;
            case '/': res=res/n;break;
          }
          fscanf(f,"%c",&c);                        /* Leer \n */
        }
        fprintf(g, "= %7.2f\n", res);
        fscanf(f, "%lf%c", &res, &c);               /*Otra vez lo mismo con la siguiente línea */
      }
    fclose(f);fclose(g);
    }
  }
  system("pause");
  return 0;
}

Ficheros 2


#include <stdio.h>
#include <stdlib.h>

int main()
{
      int c,i;
      char s[100];
      FILE *pf;

      /* abrimos un fichero donde escribimos
         con fputs() y leemos con fgets() */

      pf=fopen("hola.txt","w+");

      fputs("hola pepe\n",pf);          /* escribimos en el fichero */
      fputs("hasta luego\n",pf);
      rewind(pf);

      system ("pause");

      printf("\nLEEMOS FICHERO:\n");
      fgets(s,100,pf);                  /* leemos del fichero */
      puts(s);
      fgets(s,20,pf);
      puts(s);
      if(feof(pf)) printf("error_1\n");
      system("pause");

      /* si sigo leyendo hay error */
      printf("\nSI SEGUIMOS LEYENDO MAS ALLA DE EOF --> ERROR!\n");
      fgets(s,100,pf);
      if(feof(pf)) printf("error_2\n");
      puts(s);
      fclose(pf);

      /* reabrimos y leemos caracter a caracter  */
      pf=fopen("hola.txt","r+");
      printf("LEEMOS CARACTER A CARACTER: \n");
      while(feof(pf)==0)
        {
         c=getc(pf);
         putchar(c);
        }
     putchar('\n');
     fclose(pf);
     system("pause");

     printf("\n FINALMENTE BORRAMOS EL FICHERO.\n");
     remove("hola.txt");

     printf("\n\n");
     system("PAUSE");
     return 0;

}

Ficheros 1

#include <stdio.h>
#include <stdlib.h>

#define MAX 100

int main( )
{
   char cad[MAX];
   FILE *pf;

   /* STEP 1: Creamos fichero y escribimos en el mismo */

   pf=fopen("fichero1.txt","w");
   fprintf(pf, "HOLA: ESCRIBIENDO EN UN FICHERO.\n");
   fputs("Esto es una prueba.\n",pf);
   fclose(pf);

   printf("\nComprueba en tu carpeta la creacion del fichero\n\n");
   system("pause");
   system("cls");

   /* STEP 2: Renombramos el fichero */

   rename("fichero1.txt","fichero11.txt");

   printf("\nComprueba en tu carpeta el cambio de nombre del fichero\n\n");
   system("pause");
   system("cls");

   /* STEP 3: Abrimos el fichero y leemos su contenido */

   printf("\nAhora leemos el fichero y lo escribimos por duplicado en pantalla: \n\n");

   pf=fopen("fichero11.txt","r");

   fgets(cad,MAX,pf);
   printf("%s",cad);
   puts(cad);

   printf("\n");

   fgets(cad,MAX,pf);
   fprintf(stdout, "%s",cad);
   fputs(cad,stdout);
   printf("\n");

   fclose(pf);
   system("pause");
   system("cls");

   /* STEP 4: Borramos fichero */

   printf("\nFinalmente borramos el fichero.\n\n");

   remove("fichero11.txt");

      system("PAUSE");
      return 0;
}

miércoles, 11 de enero de 2012

/* Abertura, escritura y lectura en un fichero de texto.
   Fijaos en la carpeta donde estais trabajando el fichero
   "hola.txt" que se crea. Abrirlo y ver como se ha escrito
   la informacion en él */

#include <stdio.h>
#include <stdlib.h>

int main()
{
      int c,i,j,jl;
      char s[100];
      FILE *pf;


      /* reabrimos y leemos caracter a caracter  */
      pf=fopen("hola.txt","r");
      //printf("Escribe la primera letra una 'h'\n");
      printf("LEEMOS CARACTER A CARACTER: \n");

      j=0;jl=0;
      while(feof(pf)==0)
      {
        c=getc(pf);
        j++;
        if(c=='\n')jl++;
      } //leemos fichero y contamos total numero de caracteres y los
      //saltos de linea para luego ir hacia atrás los caracteres mas los
      //saltos de linea

      printf("%d",j);
      i=0;
      for(i=0;i<j+jl;i++)     //me voy mismo numero de caracter hacia atrás
      {
        fseek(pf,-i,SEEK_END);
        c=getc(pf);
        putchar(c);
      }

     putchar('\n');






     system("PAUSE");
     return 0;

}