SlideShare una empresa de Scribd logo
Archivos
Archivos de Texto Los archivos pueden almacenar todo tipo de información Dependiendo de eso, tienen un “tipo” En Windows, el “tipo” de un archivo esta dicho por su extensión Los archivos tipo texto (.txt) son los más simples de todos Sólo almacenan secuencias de caracteres Suponga ahora el siguiente archivo shakespeare.txt: ¿Que hay en un nombre? Eso que llamamos una rosa Emanaría un olor tan dulce, aun teniendo otro nombre Al verlo, podemos decir que es un conjunto de caracteres, y de hecho, este archivo tiene 3 líneas. Es práctico pensar en un archivo como una estructura de dos dimensiones: líneas, cada una compuesta de un conjunto de caracteres ¿Que hay en un nombre?\nEso que llamamos una rosa\nEmanaria un olor tan dulce, aun teniendo otro nombre Estructura bidimensional: Conjunto de líneas, cada una compuesta de caracteres En realidad son una sola secuencia de caracteres que incluyen el ‘\n’:
¿Y En C? Un archivo se parece mucho a una cadena Desde un programa en C se puede: Crear archivos Tomar datos del archivo y ponerlos en variables Modificar archivos Eliminar y renombrar archivos Todas son operaciones que se manejan a través de  stdio.h Para trabajar con archivos se debe: Declarar una variable de tipo FILE * (un puntero a FILE) Esta se debe asociar con el archivo, usando la función  fopen Se efectúan las operaciones de manejo de archivos que se desee Cuando se ha terminado de trabajar con el archivo se utiliza  fclose  para cerrarlo
Importante Un puntero de tipo FILE sirve para representar  a un archivo  en un programa en C. Por cada archivo con el que se desee trabajar, se declarar una variable FILE * Si una función va a trabajar con un archivo, puede recibir una variable de tipo FILE * La variable de tipo FILE * no sirve de nada si no se la “asocia” a un archivo a través de la  función fopen: variable de tipo FILE * = fopen (nombre de archivo, modo);
Abrir y Cerrar un Archivo Un archivo se puede abrir para en los siguientes modos: Lectura: “r” Para “tomar” datos del archivo. El archivo DEBE existir Escritura: “w” Para crear archivos y escribir o “mandar” datos al archivo. Si el archivo no existe, lo crea, si ya existe, lo sobre-escribe Añadir: “a” Para escribir  o “mandar” datos a un archivo que ya existe. Si no existe, lo crea, si ya existe, los datos enviados se “añaden” infile = fopen (“shakespeare.txt”,”r”); Si la operación de “abrir” falla, por alguna razon, fopen devuelve NULL. if(infile == NULL) { printf(“Error al abrir el archivo\n”); exit(1); } /*trabajar con el archivo*/ fclose(infile); Cuando se ha terminado de trabajar con el archivo, este se cierra con fclose. Cuando un programa termina, todos los archivos se cierran Sin embargo, es una  BUENA PRACTICA  de programación, cerrar los archivos pues al revisar el código se sabrá cuando ya no se usa mas una archivo
Archivos Estándar stdio  ofrece funciones para manipulación de E/S,  Usando los dispositivos estándar y Usando archivos Para evitar esa diferencia en las operaciones,  stdio , trata a todos como archivos Incluyendo a los dispositivos de E/S estándar: Teclado y Monitor Para representar a cada “archivo de dispositivo” existen 3 identificadores especiales de tipo FILE * stdin:  dispositivo de entrada estándar (teclado) stdout:  dispositivo de salida estándar (el monitor) stderr:  dispositivo de salida de errores estándar (el monitor)
Operaciones de E/S Las operaciones básicas son: Tomar (get)  datos de un archivo existente:  Entrada Poner (put)  datos un archivo, sea nuevo o existente:  Salida Se puede “tomar” o “poner”  1 carácter o  1 línea entera Para esto se deben usar las funciones de  stdio.h : getc, putc fgets, fputs Se puede incluso tomar o leer datos usando un cierto formato: fprintf, fscanf
E/S de Caracteres int getc(FILE *infile); Toma un carácter del archivo representado por infile Devuelve el código ASCII de dicho carácter El programa lo toma y lo puede almacenar en una variable de tipo char La primera llamada a getc, luego de abierto un archivo, retorna el 1er carácter La segunda, retorna el 2do, y así… Al llegar al final del archivo, getc retorna  EOF  (fin de archivo).  EOF es una constante definida en stdio con -1 void putc(int ch, FILE *outfile) “ Pone” un carácter en el archivo representado por outfile Al abrir un archivo, la primera llamada a putc, pone un carácter en el inicio La segunda, lo pone en la segunda posición el archivo, y así
Funciones de Lectura/Escritura  stdio.h fgetc Lee un caracter desde un archivo Recibe un puntero a  FILE  como parámetro fgetc(stdin)  equivale a  getchar() fputc Escribe un caracter a un archivo Recibe un puntero a  FILE  y un caracter como parámetro fputc('a',stdout)  equivale a  putchar('a') fgets Lee una línea desde un archivo fputs Escribe una línea en un archivo fscanf  /  fprintf Procesamiento de archivos equivalentes a  scanf  y  printf
Ejercicio En Clase Escribir un programa que permita copiar el contenido de un archivo llamado entrada.txt a otro llamado salida.txt ¿Qué pasos seguir? Abrir el archivo fuente (entrada.txt) en modo lectura Abrir el archivo destino (salida.txt) en modo escritura Tomar carácter a carácter del fuente y poner en el de lectura, hasta llegar al final del archivo (EOF) Cerrar los dos archivos
Algo más sobre scanf… Puede ser de utilidad  
Formato de entrada con scanf Con scanf se puede: Entrada de todo tipo de datos Entrada de caracteres específicos Omitir caracteres específicos Conjuntos de revisión (scan sets) Conjunto de caracteres entre corchetes  [] p recedidos del signo  % Busca sólo los caracteres del conjunto Cuando los encuentra los almacena en el arreglo respectivo Detiene la lectura cuando lee un caracter que no pertenece al conjunto Conjunto de caracteres invertido Usa el símbolo  ^, por ejemplo :  [^aeiou] Almacena los caracteres que no se encuentren en el conjunto Omisión de caracteres Se puede incluir el caracter que se desea omitir en la cadena de control O, se puede usar el  *  que omite cualquier tipo de caracter sin almacenarlo.

Más contenido relacionado

PDF
Manejo de archivos en c++
PPT
Objetivo 01 Archivos de Texto
PPT
ARCHIVOS LENGUAJE C
PPTX
Archivos C++
PDF
Manejo archivos
ODP
ARCHIVO EN LENGUAJE C
PDF
Manejo de archivos en el lenguaje C
PPTX
Utilizacion de archivos en Dev C++
Manejo de archivos en c++
Objetivo 01 Archivos de Texto
ARCHIVOS LENGUAJE C
Archivos C++
Manejo archivos
ARCHIVO EN LENGUAJE C
Manejo de archivos en el lenguaje C
Utilizacion de archivos en Dev C++

La actualidad más candente (18)

PPTX
Ficheros C++
PDF
PUNTEROS (APUNTADORES) EN C++
PPTX
Grupo nro4ficheros
PDF
Arreglos Turbo C
PPTX
Fichero c y c++
PDF
Archivos de datos en C
PPTX
Grupo 1 Archivos Secuenciales Indexados en C++
ODP
ARCHIVOS DEL LENGUAJE C
PPT
16 Archivos
PDF
Archivos en c clase unsam
PPTX
ARCHIVOS EN C+
PPTX
Gestion de archivos
PPTX
Archivo de datos
PPTX
Metodo File Pascal
PDF
Manejo de archivosss
PPTX
Lectura y-escritura-desde-archivos
PPS
Ficheros C++
PUNTEROS (APUNTADORES) EN C++
Grupo nro4ficheros
Arreglos Turbo C
Fichero c y c++
Archivos de datos en C
Grupo 1 Archivos Secuenciales Indexados en C++
ARCHIVOS DEL LENGUAJE C
16 Archivos
Archivos en c clase unsam
ARCHIVOS EN C+
Gestion de archivos
Archivo de datos
Metodo File Pascal
Manejo de archivosss
Lectura y-escritura-desde-archivos
Publicidad

Similar a Archivos en C (19)

PDF
Archivos c
PDF
Archivos c
PDF
Manejo dearchivosc
DOCX
Tarea pagweb
PPT
Tema 10 www.fresymetal.com
PDF
Utp pti_s11_archivos
PPT
PERSISTENCIA BASADA EN ARCHIVOS
PPT
Manejo_archivos.ppt
PDF
Clase 18 Programacion python manejo archivos USACH.pdf
ODP
ARCHIVO EN LENGUAJE C
PPSX
Curso scjp 30 navegacion de archivos e io
PDF
PDF
Archivos
PDF
Jyoc java-cap14 persistencia. ficheros corrientes
DOCX
Bryan gordillo ensayo_ficheros
ODP
Ficheros Php
DOCX
Tema1oficial
PPT
2-Archivos.ppt
PPTX
Tema 10 - Manejo de Archivos de texto.pptx
Archivos c
Archivos c
Manejo dearchivosc
Tarea pagweb
Tema 10 www.fresymetal.com
Utp pti_s11_archivos
PERSISTENCIA BASADA EN ARCHIVOS
Manejo_archivos.ppt
Clase 18 Programacion python manejo archivos USACH.pdf
ARCHIVO EN LENGUAJE C
Curso scjp 30 navegacion de archivos e io
Archivos
Jyoc java-cap14 persistencia. ficheros corrientes
Bryan gordillo ensayo_ficheros
Ficheros Php
Tema1oficial
2-Archivos.ppt
Tema 10 - Manejo de Archivos de texto.pptx
Publicidad

Más de Ronny Parra (20)

PPT
Actitudes ante las discapacidades
PPT
Caracteres y cadenas en C
PPT
Caracteres y Cadenas en C
PPT
Creacion de una librería propia en C
PPT
Funciones en C
PPT
Arreglos en C
PPT
Variables, constantes y tipos de datos en C
PPT
Introduccion a la programación
PPT
Threads en Java
PPT
Eventos en Java
PPT
Diagramas de Interaccion de Objetos
PPT
Entorno grafico en Java
PPT
Entorno gráfico en Java
PPT
Excepciones
PPT
Colecciones en Java
PPT
Clases Anidadas
PPT
Conceptos basicos de Ecologia
PPT
Diagramas de casos de uso
PPT
Java y Bases de Datos
PPT
Programación en Java: Applets
Actitudes ante las discapacidades
Caracteres y cadenas en C
Caracteres y Cadenas en C
Creacion de una librería propia en C
Funciones en C
Arreglos en C
Variables, constantes y tipos de datos en C
Introduccion a la programación
Threads en Java
Eventos en Java
Diagramas de Interaccion de Objetos
Entorno grafico en Java
Entorno gráfico en Java
Excepciones
Colecciones en Java
Clases Anidadas
Conceptos basicos de Ecologia
Diagramas de casos de uso
Java y Bases de Datos
Programación en Java: Applets

Último (20)

PDF
CyberOps Associate - Cisco Networking Academy
PDF
Plantilla para Diseño de Narrativas Transmedia.pdf
PPT
Que son las redes de computadores y sus partes
PPTX
Sesion 1 de microsoft power point - Clase 1
PDF
clase auditoria informatica 2025.........
PDF
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
PPTX
Propuesta BKP servidores con Acronis1.pptx
PPTX
Presentación de Redes de Datos modelo osi
PPTX
Presentación PASANTIAS AuditorioOO..pptx
PPTX
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
PPTX
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
PPT
introduccion a las_web en el 2025_mejoras.ppt
PDF
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
PDF
SAP Transportation Management para LSP, TM140 Col18
PDF
5.1 Pinch y Bijker en libro Actos, actores y artefactos de Bunch Thomas (coor...
PDF
Calidad desde el Docente y la mejora continua .pdf
PDF
MÓDULO DE CALOR DE GRADO DE MEDIO DE FORMACIÓN PROFESIONAL
PPTX
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
PDF
taller de informática - LEY DE OHM
DOCX
Zarate Quispe Alex aldayir aplicaciones de internet .docx
CyberOps Associate - Cisco Networking Academy
Plantilla para Diseño de Narrativas Transmedia.pdf
Que son las redes de computadores y sus partes
Sesion 1 de microsoft power point - Clase 1
clase auditoria informatica 2025.........
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
Propuesta BKP servidores con Acronis1.pptx
Presentación de Redes de Datos modelo osi
Presentación PASANTIAS AuditorioOO..pptx
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
introduccion a las_web en el 2025_mejoras.ppt
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
SAP Transportation Management para LSP, TM140 Col18
5.1 Pinch y Bijker en libro Actos, actores y artefactos de Bunch Thomas (coor...
Calidad desde el Docente y la mejora continua .pdf
MÓDULO DE CALOR DE GRADO DE MEDIO DE FORMACIÓN PROFESIONAL
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
taller de informática - LEY DE OHM
Zarate Quispe Alex aldayir aplicaciones de internet .docx

Archivos en C

  • 2. Archivos de Texto Los archivos pueden almacenar todo tipo de información Dependiendo de eso, tienen un “tipo” En Windows, el “tipo” de un archivo esta dicho por su extensión Los archivos tipo texto (.txt) son los más simples de todos Sólo almacenan secuencias de caracteres Suponga ahora el siguiente archivo shakespeare.txt: ¿Que hay en un nombre? Eso que llamamos una rosa Emanaría un olor tan dulce, aun teniendo otro nombre Al verlo, podemos decir que es un conjunto de caracteres, y de hecho, este archivo tiene 3 líneas. Es práctico pensar en un archivo como una estructura de dos dimensiones: líneas, cada una compuesta de un conjunto de caracteres ¿Que hay en un nombre?\nEso que llamamos una rosa\nEmanaria un olor tan dulce, aun teniendo otro nombre Estructura bidimensional: Conjunto de líneas, cada una compuesta de caracteres En realidad son una sola secuencia de caracteres que incluyen el ‘\n’:
  • 3. ¿Y En C? Un archivo se parece mucho a una cadena Desde un programa en C se puede: Crear archivos Tomar datos del archivo y ponerlos en variables Modificar archivos Eliminar y renombrar archivos Todas son operaciones que se manejan a través de stdio.h Para trabajar con archivos se debe: Declarar una variable de tipo FILE * (un puntero a FILE) Esta se debe asociar con el archivo, usando la función fopen Se efectúan las operaciones de manejo de archivos que se desee Cuando se ha terminado de trabajar con el archivo se utiliza fclose para cerrarlo
  • 4. Importante Un puntero de tipo FILE sirve para representar a un archivo en un programa en C. Por cada archivo con el que se desee trabajar, se declarar una variable FILE * Si una función va a trabajar con un archivo, puede recibir una variable de tipo FILE * La variable de tipo FILE * no sirve de nada si no se la “asocia” a un archivo a través de la función fopen: variable de tipo FILE * = fopen (nombre de archivo, modo);
  • 5. Abrir y Cerrar un Archivo Un archivo se puede abrir para en los siguientes modos: Lectura: “r” Para “tomar” datos del archivo. El archivo DEBE existir Escritura: “w” Para crear archivos y escribir o “mandar” datos al archivo. Si el archivo no existe, lo crea, si ya existe, lo sobre-escribe Añadir: “a” Para escribir o “mandar” datos a un archivo que ya existe. Si no existe, lo crea, si ya existe, los datos enviados se “añaden” infile = fopen (“shakespeare.txt”,”r”); Si la operación de “abrir” falla, por alguna razon, fopen devuelve NULL. if(infile == NULL) { printf(“Error al abrir el archivo\n”); exit(1); } /*trabajar con el archivo*/ fclose(infile); Cuando se ha terminado de trabajar con el archivo, este se cierra con fclose. Cuando un programa termina, todos los archivos se cierran Sin embargo, es una BUENA PRACTICA de programación, cerrar los archivos pues al revisar el código se sabrá cuando ya no se usa mas una archivo
  • 6. Archivos Estándar stdio ofrece funciones para manipulación de E/S, Usando los dispositivos estándar y Usando archivos Para evitar esa diferencia en las operaciones, stdio , trata a todos como archivos Incluyendo a los dispositivos de E/S estándar: Teclado y Monitor Para representar a cada “archivo de dispositivo” existen 3 identificadores especiales de tipo FILE * stdin: dispositivo de entrada estándar (teclado) stdout: dispositivo de salida estándar (el monitor) stderr: dispositivo de salida de errores estándar (el monitor)
  • 7. Operaciones de E/S Las operaciones básicas son: Tomar (get) datos de un archivo existente: Entrada Poner (put) datos un archivo, sea nuevo o existente: Salida Se puede “tomar” o “poner” 1 carácter o 1 línea entera Para esto se deben usar las funciones de stdio.h : getc, putc fgets, fputs Se puede incluso tomar o leer datos usando un cierto formato: fprintf, fscanf
  • 8. E/S de Caracteres int getc(FILE *infile); Toma un carácter del archivo representado por infile Devuelve el código ASCII de dicho carácter El programa lo toma y lo puede almacenar en una variable de tipo char La primera llamada a getc, luego de abierto un archivo, retorna el 1er carácter La segunda, retorna el 2do, y así… Al llegar al final del archivo, getc retorna EOF (fin de archivo). EOF es una constante definida en stdio con -1 void putc(int ch, FILE *outfile) “ Pone” un carácter en el archivo representado por outfile Al abrir un archivo, la primera llamada a putc, pone un carácter en el inicio La segunda, lo pone en la segunda posición el archivo, y así
  • 9. Funciones de Lectura/Escritura stdio.h fgetc Lee un caracter desde un archivo Recibe un puntero a FILE como parámetro fgetc(stdin) equivale a getchar() fputc Escribe un caracter a un archivo Recibe un puntero a FILE y un caracter como parámetro fputc('a',stdout) equivale a putchar('a') fgets Lee una línea desde un archivo fputs Escribe una línea en un archivo fscanf / fprintf Procesamiento de archivos equivalentes a scanf y printf
  • 10. Ejercicio En Clase Escribir un programa que permita copiar el contenido de un archivo llamado entrada.txt a otro llamado salida.txt ¿Qué pasos seguir? Abrir el archivo fuente (entrada.txt) en modo lectura Abrir el archivo destino (salida.txt) en modo escritura Tomar carácter a carácter del fuente y poner en el de lectura, hasta llegar al final del archivo (EOF) Cerrar los dos archivos
  • 11. Algo más sobre scanf… Puede ser de utilidad 
  • 12. Formato de entrada con scanf Con scanf se puede: Entrada de todo tipo de datos Entrada de caracteres específicos Omitir caracteres específicos Conjuntos de revisión (scan sets) Conjunto de caracteres entre corchetes [] p recedidos del signo % Busca sólo los caracteres del conjunto Cuando los encuentra los almacena en el arreglo respectivo Detiene la lectura cuando lee un caracter que no pertenece al conjunto Conjunto de caracteres invertido Usa el símbolo ^, por ejemplo : [^aeiou] Almacena los caracteres que no se encuentren en el conjunto Omisión de caracteres Se puede incluir el caracter que se desea omitir en la cadena de control O, se puede usar el * que omite cualquier tipo de caracter sin almacenarlo.