Sei sulla pagina 1di 4

LISTADO DE FUNCIONES PARA EL MANEJO DE ARCHIVOS EN EL LENGUAJE C

NOMBRE DE LA FUNCIÓN PROTOTIPO DESCRIPCIÓN


Función fgetc int fgetc(FILE *archivo); Esta función lee un carácter desde un archivo.

El valor de retorno es el carácter leído como un


unsigned char convertido a int. Si no hay ningún
carácter disponible, el valor de retorno es EOF. El
parámetro es un puntero a una estructura FILE del
archivo del que se hará la lectura.
Función fputc: int fputc(int caracter, FILE *archivo); Esta función escribe un carácter a un archivo.

El valor de retorno es el carácter escrito, si la


operación fue completada con éxito, en caso
contrario será EOF. Los parámetros de entrada son
el carácter a escribir, convertido a int y un puntero
a una estructura FILE del archivo en el que se hará
la escritura.
Función fgets: char *fgets(char *cadena, int n, FILE *archivo); Esta función está diseñada para leer cadenas de
caracteres. Leerá hasta n-1 caracteres o hasta que
lea un retorno de línea. En este último caso, el
carácter de retorno de línea también es leído.

El parámetro n nos permite limitar la lectura para


evitar el desbordamiento del espacio disponible en
la cadena.

El valor de retorno es un puntero a la cadena leída,


si se leyó con éxito, y es NULL si se detecta el final
del archivo o si hay un error. Los parámetros son:
la cadena a leer, el número de caracteres máximo
a leer y un puntero a una estructura FILE del
archivo del que se leerá.
Función fputs: int fputs(const char *cadena, FILE *stream); La función fputs escribe una cadena en un archivo.
No se añade el carácter de retorno de línea ni el
carácter nulo final.

El valor de retorno es un número no negativo o


EOF en caso de error. Los parámetros de entrada
son la cadena a escribir y un puntero a la
estructura FILE del archivo donde se realizará la
escritura
Función fread: size_t fread(void *puntero, size_t tamaño, size_t nregistros, FILE *archivo); Esta función está pensada para trabajar con
registros de longitud constante. Es capaz de leer
desde un archivo uno o varios registros de la
misma longitud y a partir de una dirección de
memoria determinada. El usuario es responsable
de asegurarse de que hay espacio suficiente para
contener la información leída.

El valor de retorno es el número de registros


leídos, no el número de bytes. Los parámetros
son: un puntero a la zona de memoria donde se
almacenarán los datos leídos, el tamaño de cada
registro, el número de registros a leer y un
puntero a la estructura FILE del archivo del que se
hará la lectura.
Función fwrite: size_t fwrite(void *puntero, size_t tamaño, size_t nregistros, FILE Esta función también está pensada para trabajar
*archivo); con registros de longitud. Es capaz de escribir
hacia un archivo uno o varios registros de la misma
longitud almacenados a partir de una dirección de
memoria determinada.

El valor de retorno es el número de registros


escritos, no el número de bytes. Los parámetros
son: un puntero a la zona de memoria donde se
almacenarán los datos leídos, el tamaño de cada
registro, el número de registros a leer y un
puntero a la estructura FILE del archivo del que se
hará la lectura.

Página 1
Función fflush: int fflush(FILE *archivo); Esta función fuerza la salida de los datos
acumulados en el buffer de salida del archivo. Para
mejorar las prestaciones del manejo de archivos se
utilizan buffers, almacenes temporales de datos en
memoria, las operaciones de salida se hacen a
través del buffer, y sólo cuando el buffer se llena
se realiza la escritura en el disco y se vacía el
buffer. En ocasiones nos hace falta vaciar ese
buffer de un modo manual, para eso sirve ésta
función.

El valor de retorno es cero si la función se ejecutó


con éxito, y EOF si hubo algún error. El parámetro
de entrada es un puntero a la estructura FILE del
archivo del que se quiere vaciar el buffer. Si es
NULL se hará el vaciado de todos los archivos
abiertos.
Función fseek: int fseek(FILE *archivo, long int desplazamiento, int origen); Esta función sirve para situar el cursor del archivo
para leer o escribir en el lugar deseado.

El valor de retorno es cero si la función tuvo éxito,


y un valor distinto de cero si hubo algún error.

Los parámetros de entrada son: un puntero a una


estructura FILE del archivo en el que queremos
cambiar el cursor de lectura/escritura, el valor del
desplazamiento y el punto de origen desde el que
se calculará el desplazamiento.

El parámetro origen puede tener tres posibles


valores:

1. SEEK_SET el desplazamiento se cuenta


desde el principio del archivo. El primer
byte del archivo tiene un
desplazamiento cero.
2. SEEK_CUR el desplazamiento se cuenta
desde la posición actual del cursor.
3. SEEK_END el desplazamiento se cuenta
desde el final del archivo

Función ftell: long int ftell(FILE *archivo); La función ftell sirve para averiguar la posición
actual del cursor de lectura/excritura de un
archivo.

El valor de retorno será esa posición, o -1 si hay


algún error.

El parámetro de entrada es un puntero a una


estructura FILE del archivo del que queremos leer
la posición del cursor de lectura/escritura.

Página 2
EJEMPLOS: #include <stdio.h>

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

#include <stdlib.h>

struct {

struct { int matricula;

int matricula; char nombre[30];

char nombre[30]; int edad;

int edad; } alumno;

} alumno;

int main(int argc, char *argv[]) int main(int argc, char *argv[])

{ {

printf("dame matricula :"); printf("inicio de lectura\n");

scanf("%d",&alumno.matricula);

getchar(); FILE *archdisco;

printf("dame nombre :"); if ((archdisco = fopen("alumnos.dat","r")) != NULL)

gets(alumno.nombre); {

int contador = 0;

printf("dame edad :"); while (!feof(archdisco))

scanf("%d",&alumno.edad); {

fread(&alumno,sizeof(alumno),1,archdisco);

FILE *archdisco; printf("Registro No. %d\n", ++contador);

if ((archdisco = fopen("alumnos.dat","a")) != NULL) { printf("Matricula: %d Nombre: %s Edad: %d\n", alumno.matricula,


alumno.nombre, alumno.edad);
fwrite(&alumno,sizeof(alumno),1,archdisco);
printf("Posicion del puntero del archivo %d\n", ftell(archdisco));
fflush(archdisco);
}
fclose(archdisco);
fclose(archdisco);
printf("alumno insertado\n");
printf("lectura terminada\n");
}
}
system("PAUSE");

return 0;
system("PAUSE");
}
return 0;

Página 3
#include <stdio.h> #include <stdio.h>

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

int main(int argc, char *argv[]) int main(int argc, char *argv[])

{ {

FILE * archdisco; FILE * archdisco;

int caracter; char caracter;

if ((archdisco = fopen("texto.txt","r")) != NULL)

{ archdisco = fopen ("texto.txt","a");

do if (archdisco != NULL)

{ {

caracter = fgetc (archdisco); for (caracter='A' ;caracter <= 'Z';caracter++)

printf("%c", caracter); {

} while (caracter != EOF); fputc ((int)caracter,archdisco);

fclose (archdisco); }

} printf("Escritura terminada\n");

system("pause"); fclose (archdisco);

return 0; }

} system("PAUSE");

return 0;

Página 4

Potrebbero piacerti anche