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;

}

miércoles, 14 de diciembre de 2011

Matriz dimension N, traza


#include <stdio.h>
#define DIM 100

void LeerMatriz(float A[DIM][DIM])
{
    int i,j, n;
    printf("Introduce la dimension de tu matriz: \n");
    scanf ("%d", &n);
    for (i=0; i<n; i++)
    {
        printf ("Dame los %d elementos  la fila %d: \n", n, i+1);
        for (j=0; j<n; j++)
        scanf ("%f", &A[i][j]);
    }
}

void EscribirMatriz(float A[DIM][DIM])
{
    int i,j, n;
    printf("La matriz introducida es: \n");
    for(i=0;i<n;i++)
    {
        printf("\nFila %d: ", i+1);
        for (j=0;j<n;j++)
        printf("\t%f", A[i][j]);
    }
}



float TrazaMatriz(float A[DIM][DIM])
{
  int i,j, fil, col;
  float suma=0;
  fil=col;
  for(i=0;i<fil;i++)
  suma+=A[i][i];
  printf("\n\nLa traza (suma elementos diagonal principal) de tu matriz es: \n");
  printf("%f\n\n", suma);
}



int main()
{

 float A[DIM][DIM];

 LeerMatriz(A);

 EscribirMatriz(A);

 TrazaMatriz(A);

 return 0;

}

letra mas usada


#include <stdio.h>
#include <string.h>
int main()
{
char texto[20];
int i,max=0,contadores[256];
for(i=0;i <= 255;i++)
contadores[i]=0;
printf("Escribe una palabra: ");
scanf("%s",&texto);
for (i=0;i < strlen(texto);i++)
contadores[texto[i]]++;
for(i=0;i <= 255;i++)
if(contadores[i] > max)
max=contadores[i];
for(i=0;i <= 255;i++)
if(contadores[i]==max) printf("\nLa letra mas usada es la %c",i);

getchar;
return 0;
}

DICE NUMERO DE LETRAS Y ESCRIBE DEL REVES


#include <stdio.h>
int main ()
{
char c, palabra[21];
int i;
printf("Teclea una palabra de menos de 20 letras:\n");
scanf("%s", palabra);
i=0;
while (palabra[i++]!='\0');
printf("%s tiene %d letras.\n", palabra, i-1);
printf("%s escrita al reves es: ", palabra);
while (i>0) printf("%c", palabra[--i]);
printf("\n");
return 0;
}