Estimados,
Como les comenté hoy de mañana al final de la clase de lectura del obligatorio, adjunto el archivo de código fuente utilizado en el taller de entrada/salida. Encontraran varios ejemplos de manejo de flujos.
Resumen Taller E/S (funciones de utilidad de la librería stdio.h)
Abrir y cerrar arhivos:
Sentencias de ejemplo:
FILE *fp = fopen("file.txt", "w"); // Abrimos un archivo
fclose(fp); //Cerramos
Probar abrir un archivo de distintas maneras:
- con "r" abrimos el archivo para leer
- con "w" creamos un archivo para escribir, descartamos contenido anterior
- con "a" creamos un archivo para escribir, escribimos al final del archivo
- con "r+" abrimos un archivo como lectura y escritura, comenzando al inicio
- con "w+" abrimos un archivo como lectura y escrtura, descartamos el contenido anterior
- con "a+" abrimos un archivo como lectura y escritura, comenzamos a escribir al final del archivo
Leemos y escribimos con formato: fscanf y fprintf:
- int fscanf(FILE *stream, const char *format, ...): lee la entrada con formato desde un flujo de datos
- int fprintf(FILE *stream, const char *format, ...): escribe con formato hacia un flujo de datos
Escribimos caractéres: putc, fputc, fputs:
- int putc(int character, FILE* stream): escribe un caracter en el flujo de datos (puede ser implementado como un macro)
- int fputc(int character, FILE* stream): lo mismo que putc (no puede ser implementado como un macro)
- int fputs (const char* str, FILE* stream): escribe un string en el flujo de datos hasta encontrar el caracter '\0'
Leemos caractéres: getc, fgetc, fgets
- int getc(FILE* stream): obtiene un caracter desde un flujo de datos (puede ser implementado como un macro)
- int fgetc(FILE* stream): lo mismo que getc (no puede ser implementado como un macro)
- char* fgets(char* str, int num, FILE* stream): obtiene un string desde un flujo de datos, hasta haber leido num-1 caracteres, o hasta encontrar un espacio o fin de linea. Lo que llegue primero.
Posicionamiento en los archivos: fseek, rewind:
- int fseek(FILE *stream, long int offset, int whence):
- stream: This is the pointer to a FILE object that identifies the stream.
- offset: This is the number of bytes to offset from whence.
- whence: This is the position from where offset is added. It is specified by one of the following constants
Constant Description
SEEK_SET Beginning of file
SEEK_CUR Current position of the file pointer
SEEK_END End of file
- void rewind(FILE *stream): setea la posición del archivo al comienzo del archivo del flujo de datos
Saludos,
Juan Pablo Garella