Tema 8

 

 

 


T8.9 - Para redefinir el tipo fichero de C se escribe la expresión

typedef File * Fichero;

typedef Fichero * FILE;

typedef FILE Fichero *;

typedef FILE Fichero;

typedef FILE * Fichero;




T8.2 - La función feof:

Determina cómo se debe cerrar el fichero

Detecta el final de un fichero siempre y cuando éste se haya abierto en modo “w”

Detecta el final de un fichero abierto en modo escritura

Detecta el final de un fichero siempre y cuando se haya escrito previamente en él

Detecta el final de un fichero siempre y cuando se haya leído previamente de él




Dada las siguientes variables:

Cadena s;
TablaReal mat;
int n,m;

Una posible invocación de una función para leer los elementos de una matriz de reales de un fichero de texto dado su nombre es:

lecturaFichero(s,&mat,&n,&m);

lecturaFichero(“matriz.txt”,mat,n,m);

lecturaFichero(s, mat, 20, 10);

lecturaFichero(“datos.txt”,mat,&n,&m);

lecturaFichero(s, mat, NFIL, NCOL);




El prototipo de una función que devuelve un vector con los elementos de la diagonal de una matriz cuadrada de reales es

void diagonal(const MatrizReal, TablaReal);

void diagonal(const MatrizReal, int, int, TablaReal, int);

void diagonal(const MatrizReal, int, TablaReal);

void diagonal(const MatrizReal, int, TablaReal *);

void diagonal(const MatrizReal, int, int, TablaReal);




El prototipo de una función para leer los elementos de una matriz de reales de un fichero de texto dado su nombre:

void lecturaFichero(Cadena, MatrizReal *, int, int);

void lecturaFichero(Cadena *, MatrizReal, int *, int *);

void lecturaFichero(Cadena, MatrizReal, int, int);

void lecturaFichero(Cadena, MatrizReal *, int *, int *);

void lecturaFichero(Cadena, MatrizReal, int *, int *);




Para leer los datos de una matriz de reales de un fichero de texto se escribiría:

for(i=0;i<nfil;i++) {
   for(j=0;j<ncol;j++) {
         fscanf(f,”%f”,mat[i][j]);
   }
}

for(i=0;i<nfil;i++) {
   for(j=0;j<ncol;j++) {
         fscanf(”%f”,&mat[i][j]);
   }
}

for(i=0;i<nfil;i++) {
   for(j=0;j<ncol;j++) {
         fscanf(f,”%f”,&mat[i][j]);
   }
}

for(i=0;i<nfil;i++) {
   for(j=0;j<ncol;j++) {
         fscan(f,”%f”,&mat[i][j]);
   }
}

for(i=0;i<nfil;i++) {
   for(j=0;j<ncol;j++) {
         scanf(f,”%f”,&mat[i][j]);
   }
}




Si f es una variable de tipo fichero de texto entonces un bucle típico para leer datos de f sería:

while (!feof())

while (!feof(f))

while (feof(f))

while (!feof(FILE *f))

while !(feof(f))




Si f es una variable de tipo fichero de texto y se quiere leer del fichero de nombre datos.txt la sentencia que se debe escribir es:

f=fopen(“datos.txt , r”);

f=fopen(“datos.txt”,’r’);

f=open(“datos.txt”,”r”);

f=fopen(“datos.txt”,”r”);

f=fopen(“datos.txt”,r);




Queremos escribir una función para leer  de un fichero de texto un conjunto de números enteros hasta el FINAL del mismo y guardarlo en un array. Entonces completa el siguiente código sin dejar espacios en blanco:

int lectura (Cadena s, TablaEnteros v){

    Fichero f;
    int i=0,n;

    f=fopen(,);
    if (){
        printf ("Fichero no existe\n");
    }
    else{
       (f,,);
       while (){
        v[i]=n;
        ;
        fscanf();
    }
    fclose(f);
    }
    return ;
}




Queremos abrir el fichero datos.txt para lectura y tenemos definida la variable fich de tipo FILE *. Entonces la sentencia adecuada es







T8.13 - Queremos abrir el fichero datos.txt para escritura y tenemos definida la variable fich de tipo FILE *. Entonces la sentencia adecuada es





Una función que escribe en un fichero de texto una matriz (array bidimensional) de números reales en formato de filas y columnas tiene el siguiente código:

void escribeMatriz(const nomfich, const MatrizReal m, int nf, int nc){
    int i,j;
    f;

    f=fopen(nomfich,);
   
    for(i=0;i<nf;i++){
        for(j=0;j<nc;j++){
            (,,);
        }
        (,);
    }
    fclose(f);
}




Una función para leer de un fichero de texto los elementos de una matriz de reales es:

void lecturaFichero(Cadena nomfich, MatrizReal mat, numf, int* numc){
    f;
    int nf,nc;
    int i,j;

    f=fopen(,);
    if (f==NULL)
        printf("Fichero no encontrado\n");
    else {
        fscanf(f,"%d",); //  lee el número de filas
        fscanf(f,"%d",); // lee el número de columnas
        for(i=0;i<nf;i++)
            for(j=0;j<nc;j++)
                fscanf(f,,);
    }
    =;
    *numc=nc;
}




Rellene los huecos para...

Abrir un fichero de texto en modo lectura:
         f=fopen("fic.txt",);

Abrir un fichero de texto en modo escritura:
        f=fopen("fic.txt",);




Un bucle while típico para leer un fichero de texto mediante la variable f en C es (no deje espacios en blanco)
  while()





Puntuacion Total

Aciertos

Aciertos Parciales

No hay comentarios:

Publicar un comentario