SlideShare una empresa de Scribd logo
Fichero c y c++
 Un stream es una especie de canal a través
  del cual fluyen los datos.
 Técnicamente, un stream es el enlace
  lógico utilizado por el programador en C,
  C++ para leer o escribir datos desde y hacia
  los dispositivos estándar conectados a la PC.
 El dispositivo estándar para manipular
  entradas es el teclado y está asociado al
  objeto cin; el dispositivo estándar de
  salida está asociado al objeto cout.
   El almacenamiento de datos en variables y arrays
    (arreglos) es temporal; los datos se pierden cuando
    se termina el programa.
   La mayoría de las aplicaciones requiere que la
    información se almacene de forma persistente es
    decir que no se borre cuando se termine la
    ejecución del programa. Debido a esto se
    requiere utilizar archivos (ficheros) para almacenar
    de modo permanente grandes cantidades de
    datos, incluso después de que los programas que
    crean los datos se terminan.
1. Un fichero se identifica por su nombre, el cual
   generalmente está compuesto por:
• Path: Indica la ruta para encontrar el fichero
  incluyendo la unidad de almacenamiento donde
  se halla.
•   Nombre
•   Extensión: Son tres caracteres que sirven para
  identificar el
    tipo de fichero
Por ejemplo:

            "C:Mis documentosapuntes.doc"
     path
                                              extensión
                        nombre
2.   Un fichero puede estar compuesto por registros,
     cada uno de los cuales contiene información sobre
     un elemento. Un registro está compuesto por
     campos.
     Ejemplo: Se tiene un fichero de registros o
     estructuras Articulo

                     struct Articulo {
                       int codigo;
               char descripcion[maxdesc];
                       float precio;
                                     };
  Secuencial: para acceder al elemento i-ésimo se
   recorre desde el primer elemento hasta el
   elemento i-1.
Ejemplo: El almacenamiento en una cinta(casette)
es de acceso secuencial.

  Directo: para acceder al elemento i-ésimo se
   hace directamente.
Ejemplo: El almacenamiento en un disco es de
acceso directo.
   Secuencial: Las consultas de los registros se hace
    secuencialmente desde el primer elemento hasta el elemento
    i-ésimo.
 Directa: Se establece una relación entre la clave del registro y
    la posición del registro en el fichero.
Ejemplo: Se tiene un fichero de registros Articulo cuyo campo
clave es el código. Los códigos son números que van de 10 en
10, ej. 10, 20, 30, 40, 50, etc. Se realiza la siguiente función de
acceso F:
 F (código) = código(10);
La cual que devuelve la posición del registro a partir del
código, y por lo tanto puede accederse a él directamente.
 Indexada: Básicamente es una organización secuencial a la
    que se le agrega una o más tablas de índices que permiten
    acceder a los registros de manera más directa.
 Existen operaciones que afectan a todo el
  fichero, entre las cuales se enumeran:
 Crear un fichero
 Borrar un fichero
 Ordenar un fichero según algún criterio de
  orden
 Fusionar dos ficheros para formar un tercer
  fichero
 Dividir un fichero en dos o más ficheros
   Además, existen otras operaciones que
    afectan a uno o más registros del
    fichero, entre las cuales se enumeran:

 Alta de un nuevo registro
 Baja de un registro
 Modificación de uno o más registros
 Consulta de uno o más registros
   Su sintaxis es:
                      nombre_fstream.operacion

  Open(nombre_fichero, opciones): Puede usarse cuando en el
   constructor se ignoró la apertura del fichero.
Ejemplo:
fichero1.open("prueba.txt", ios::in); esto antes de realizar
cualquier lectura.

  close(): Cuando se desea cerrar un stream
Ejemplo:
fichero1.close(); esto después de haber realizado todas las
lecturas y/o escrituras.

    eof(): Es una función que devuelve un valor diferente a 0
     (TRUE) si se llegó al fin de fichero, de otro modo devuelve 0
     (FALSE)
Ejemplo:
if (fichero1.eof()){
 //fin de fichero, no hay más datos
}
    is_open(): Es una función que devuelve un valor diferente a 0
     (TRUE) si el fichero asociado al stream está abierto, de otro
     modo devuelve 0 (FALSE).
Ejemplo:
if (fichero1.is_open()){
cout<<el fichero está abierto;
}
 tellp(), es una función que devuelve como resultado la
     posición actual (tipo pos_type) de un stream de salida.

   seekp(posición, posición_inicial), sitúa el lugar de escritura
    indicada en posición en forma relativa a posicion_inicial, la
    cual puede ser ios::beg (comienzo), ios::cur (actual), ios::end
    (fin).
  Existe una manera de manipular ficheros en C++
   mediante los denominados streams.
 Un stream representa un flujo de información,
   desde el programa a un dispositivo o periférico de
   salida, o desde un periférico de entrada al
   programa
 La manera de utilizar un stream de entrada es:
stream_entrada >> variable;
 La manera de utilizar un stream de salida es:
stream_salida << información.
   Hasta el momento se han utilizado dos streams
    predefinidos:
   cin es un stream de entrada asociado al teclado
   cout es un stream de salida asociado a la pantalla

Pueden definirse stream de entrada y/o salida y
asociarlos a un fichero, de manera que se puedan
recibir datos del fichero y/o enviar datos al fichero
respectivamente.

  La librería que se debe utilizar es <fstream.h>.
 Se debe declarar un stream mediante el constructor:
 fstream nombre_stream (nombre_fichero, opciones);
   Las opciones indican diferentes modos entre los
    cuales se encuentran:
   ios::in: Crea un stream de entrada, es decir, para
    lectura de datos del fichero
   ios::out: Crea un stream de salida, es decir, para
    escritura de datos en el fichero
   ios::ate: Hace que la posición inicial sea al final del
    fichero
   ios::app: Se sitúa al final del fichero antes de cada
    escritura
   ios::trunc: Borra cualquier cosa que pudiera haber en
    el fichero
   ios::nocreate: Si el fichero no existe fallará
   ios::noreplace: Si el fichero existe fallará
   ios::bin: Abre el fichero como binario
Ejemplo:
 stream de salida asociado al fichero prueba.txt. Se borra
   cualquier contenido del mismo.
        fstream fichero1 ("prueba.txt", ios::out|ios::trunc)

   stream de entrada asociado al fichero prueba.txt
              fstream fichero2 ("prueba.txt", ios::in);
   Cuando se quiere guardar información de
    estructuras o registros en C/C++ se deben utilizar las
    funciones de ficheros de la librería <stdio.h>.

   Existe un tipo de datos denominado FILE por medio
    del cual se manipulan los ficheros.

   Entre las funciones definidas para trabajar con
    ficheros se encuentran:
   FILE* fopen (const char *name, const char *mode):
   recibe como parámetros:
 Un string name con el nombre del fichero
 Un string mode con el modo de apertura del fichero que
    puede ser:
    "r" : abre fichero existente para lectura. Si no existe falla la
          operación.
   "w" : abre fichero para escritura. Si existe, sus contenidos se
          borran.
   "a" : abre fichero para escritura. Si existe, se agregan los datos
          al final
  "r+" : abre fichero para lectura y escritura. El fichero debe existir.
 "w+" : abre fichero para lectura y escritura. Si existe, sus
          contenidos se borran
 "a+" : abre fichero para lectura y escritura. Si existe, se agregan
          datos al final
  int fclose (FILE *file)
La función fclose cierra el fichero abierto file.
 size_t fread (void *pbuffer, size_t size, size_t number, FILE *file)
Se usa para leer desde el fichero, y recibe como parámetros:
 Un puntero a FILE del fichero file desde el cual se quiere leer.
 Un número number de tipo size_t que indica la cantidad de
   elementos que se quiere leer.
 Un número size de tipo size_t que indica el tamaño en bytes de
   cada elemento.
 Un puntero pbuffer a un lugar donde se copiarán los
   elementos leídos.
 size_t fwrite (void *pbuffer, size_t size, size_t number, FILE *file)
La función fwrite se usa para escribir en el fichero, y recibe los
mismos parámetros que la función fread.
 int ftell (FILE *file)
La función ftell devuelve un int que indica el número
de bytes desde el comienzo hasta la posición donde
se encuentra el cabezal de lectura.

  int feof (FILE *file)
Devuelve 0 mientras las lecturas hechas no lleguen al
final del fichero.

 void rewind (FILE *file)
La función rewind sitúa el cabezal de lectura al inicio
del fichero.
   Luís, Joyanes aguilar. (2003): “Fundamentos de Programación:
    Algoritmos, Estructuras de Datos y Objetos.” Madrid.Mc-Graw
    Hill. Cuarta edición. Páginas 201 hasta 346 (Capitulo #9) .

   Anónimo, Fundamentos de informática [en
    línea], Ficheros, Fecha de consulta: 28-12-2012, Disponible en:
    http://dmi.uib.es/~abasolo/foninf/2002-2003/capitulos/6-
    ficheros.html

Más contenido relacionado

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

La actualidad más candente (19)

PPTX
Archivos C++
PDF
Manejo de archivos en java
PDF
PUNTEROS (APUNTADORES) EN C++
PPT
Archivos aleatorios en java
PPTX
Grupo nro4ficheros
PPT
11. lectura y escritura de información
PDF
Archivos en c clase unsam
PDF
Manejo de archivosss
PPTX
Utilizacion de archivos en Dev C++
PDF
Archivos
PDF
Archivos de datos en C
PPS
DOCX
Flujos y archivos
PPTX
Grupo 1 Archivos Secuenciales Indexados en C++
ODP
Archivos Java
PPTX
Lectura y-escritura-desde-archivos
PDF
Arreglos Turbo C
ODP
ARCHIVOS DEL LENGUAJE C
PPT
16 Archivos
Archivos C++
Manejo de archivos en java
PUNTEROS (APUNTADORES) EN C++
Archivos aleatorios en java
Grupo nro4ficheros
11. lectura y escritura de información
Archivos en c clase unsam
Manejo de archivosss
Utilizacion de archivos en Dev C++
Archivos
Archivos de datos en C
Flujos y archivos
Grupo 1 Archivos Secuenciales Indexados en C++
Archivos Java
Lectura y-escritura-desde-archivos
Arreglos Turbo C
ARCHIVOS DEL LENGUAJE C
16 Archivos
Publicidad

Destacado (7)

ODP
Ficheros y Directorios
PPTX
S o dos
PPTX
Sistemas operativos monousuario
DOCX
Identificacion y organizacion de archivos
PPS
Ficheros y carpetas
PPTX
Tipos de archivos y extensiones[1]
PDF
Archivos Y Carpetas
Ficheros y Directorios
S o dos
Sistemas operativos monousuario
Identificacion y organizacion de archivos
Ficheros y carpetas
Tipos de archivos y extensiones[1]
Archivos Y Carpetas
Publicidad

Similar a Fichero c y c++ (20)

PPT
PERSISTENCIA BASADA EN ARCHIVOS
PDF
Archivos c
PDF
Archivos c
PDF
Manejo dearchivosc
PPT
Tema 10 www.fresymetal.com
DOCX
Tema1oficial
PDF
PPT
2-Archivos.ppt
PPTX
Acceso a datos
DOCX
Tarea pagweb
PPT
Manejo_archivos.ppt
PPTX
Gestion de archivos
PDF
PDF
Archivos
PPT
7 manejo de archivos
PDF
Manejo de archivos en java
PDF
Manejo de archivos en java
PDF
Manejo+de+archivos+en+java
PPTX
Archivo de datos
PPT
Metodos de entrada y Salida
PERSISTENCIA BASADA EN ARCHIVOS
Archivos c
Archivos c
Manejo dearchivosc
Tema 10 www.fresymetal.com
Tema1oficial
2-Archivos.ppt
Acceso a datos
Tarea pagweb
Manejo_archivos.ppt
Gestion de archivos
Archivos
7 manejo de archivos
Manejo de archivos en java
Manejo de archivos en java
Manejo+de+archivos+en+java
Archivo de datos
Metodos de entrada y Salida

Último (20)

PDF
Guia de Tesis y Proyectos de Investigacion FS4 Ccesa007.pdf
PDF
Cronograma de clases de Práctica Profesional 2 2025 UDE.pdf
DOCX
V UNIDAD - PRIMER GRADO. del mes de agosto
PPTX
AGENTES PATÓGENOS Y LAS PRINCIPAL ENFERMEAD.pptx
PDF
TRAUMA_Y_RECUPERACION consecuencias de la violencia JUDITH HERMAN
PDF
Romper el Circulo de la Creatividad - Colleen Hoover Ccesa007.pdf
DOCX
2 GRADO UNIDAD 5 - 2025.docx para primaria
PDF
Fundamentos_Educacion_a_Distancia_ABC.pdf
PDF
La Evaluacion Formativa en Nuevos Escenarios de Aprendizaje UGEL03 Ccesa007.pdf
PDF
Híper Mega Repaso Histológico Bloque 3.pdf
PDF
Didactica de la Investigacion Educativa SUE Ccesa007.pdf
PDF
PFB-MANUAL-PRUEBA-FUNCIONES-BASICAS-pdf.pdf
DOCX
III Ciclo _ Plan Anual 2025.docx PARA ESTUDIANTES DE PRIMARIA
DOCX
UNIDAD DE APRENDIZAJE 5 AGOSTO tradiciones
DOCX
V UNIDAD - SEGUNDO GRADO. del mes de agosto
PDF
1. Intrdoduccion y criterios de seleccion de Farm 2024.pdf
DOCX
PROYECTO DE APRENDIZAJE para la semana de fiestas patrias
PDF
GUIA DE: CANVA + INTELIGENCIA ARTIFICIAL
PDF
Escuela de Negocios - Robert kiyosaki Ccesa007.pdf
PDF
COMUNICACION EFECTIVA PARA LA EDUCACION .pdf
Guia de Tesis y Proyectos de Investigacion FS4 Ccesa007.pdf
Cronograma de clases de Práctica Profesional 2 2025 UDE.pdf
V UNIDAD - PRIMER GRADO. del mes de agosto
AGENTES PATÓGENOS Y LAS PRINCIPAL ENFERMEAD.pptx
TRAUMA_Y_RECUPERACION consecuencias de la violencia JUDITH HERMAN
Romper el Circulo de la Creatividad - Colleen Hoover Ccesa007.pdf
2 GRADO UNIDAD 5 - 2025.docx para primaria
Fundamentos_Educacion_a_Distancia_ABC.pdf
La Evaluacion Formativa en Nuevos Escenarios de Aprendizaje UGEL03 Ccesa007.pdf
Híper Mega Repaso Histológico Bloque 3.pdf
Didactica de la Investigacion Educativa SUE Ccesa007.pdf
PFB-MANUAL-PRUEBA-FUNCIONES-BASICAS-pdf.pdf
III Ciclo _ Plan Anual 2025.docx PARA ESTUDIANTES DE PRIMARIA
UNIDAD DE APRENDIZAJE 5 AGOSTO tradiciones
V UNIDAD - SEGUNDO GRADO. del mes de agosto
1. Intrdoduccion y criterios de seleccion de Farm 2024.pdf
PROYECTO DE APRENDIZAJE para la semana de fiestas patrias
GUIA DE: CANVA + INTELIGENCIA ARTIFICIAL
Escuela de Negocios - Robert kiyosaki Ccesa007.pdf
COMUNICACION EFECTIVA PARA LA EDUCACION .pdf

Fichero c y c++

  • 2.  Un stream es una especie de canal a través del cual fluyen los datos.  Técnicamente, un stream es el enlace lógico utilizado por el programador en C, C++ para leer o escribir datos desde y hacia los dispositivos estándar conectados a la PC.  El dispositivo estándar para manipular entradas es el teclado y está asociado al objeto cin; el dispositivo estándar de salida está asociado al objeto cout.
  • 3. El almacenamiento de datos en variables y arrays (arreglos) es temporal; los datos se pierden cuando se termina el programa.  La mayoría de las aplicaciones requiere que la información se almacene de forma persistente es decir que no se borre cuando se termine la ejecución del programa. Debido a esto se requiere utilizar archivos (ficheros) para almacenar de modo permanente grandes cantidades de datos, incluso después de que los programas que crean los datos se terminan.
  • 4. 1. Un fichero se identifica por su nombre, el cual generalmente está compuesto por: • Path: Indica la ruta para encontrar el fichero incluyendo la unidad de almacenamiento donde se halla. • Nombre • Extensión: Son tres caracteres que sirven para identificar el tipo de fichero Por ejemplo: "C:Mis documentosapuntes.doc" path extensión nombre
  • 5. 2. Un fichero puede estar compuesto por registros, cada uno de los cuales contiene información sobre un elemento. Un registro está compuesto por campos. Ejemplo: Se tiene un fichero de registros o estructuras Articulo struct Articulo { int codigo; char descripcion[maxdesc]; float precio; };
  • 6.  Secuencial: para acceder al elemento i-ésimo se recorre desde el primer elemento hasta el elemento i-1. Ejemplo: El almacenamiento en una cinta(casette) es de acceso secuencial.  Directo: para acceder al elemento i-ésimo se hace directamente. Ejemplo: El almacenamiento en un disco es de acceso directo.
  • 7. Secuencial: Las consultas de los registros se hace secuencialmente desde el primer elemento hasta el elemento i-ésimo.  Directa: Se establece una relación entre la clave del registro y la posición del registro en el fichero. Ejemplo: Se tiene un fichero de registros Articulo cuyo campo clave es el código. Los códigos son números que van de 10 en 10, ej. 10, 20, 30, 40, 50, etc. Se realiza la siguiente función de acceso F: F (código) = código(10); La cual que devuelve la posición del registro a partir del código, y por lo tanto puede accederse a él directamente.  Indexada: Básicamente es una organización secuencial a la que se le agrega una o más tablas de índices que permiten acceder a los registros de manera más directa.
  • 8.  Existen operaciones que afectan a todo el fichero, entre las cuales se enumeran:  Crear un fichero  Borrar un fichero  Ordenar un fichero según algún criterio de orden  Fusionar dos ficheros para formar un tercer fichero  Dividir un fichero en dos o más ficheros
  • 9. Además, existen otras operaciones que afectan a uno o más registros del fichero, entre las cuales se enumeran:  Alta de un nuevo registro  Baja de un registro  Modificación de uno o más registros  Consulta de uno o más registros
  • 10. Su sintaxis es: nombre_fstream.operacion  Open(nombre_fichero, opciones): Puede usarse cuando en el constructor se ignoró la apertura del fichero. Ejemplo: fichero1.open("prueba.txt", ios::in); esto antes de realizar cualquier lectura.  close(): Cuando se desea cerrar un stream Ejemplo: fichero1.close(); esto después de haber realizado todas las lecturas y/o escrituras.  eof(): Es una función que devuelve un valor diferente a 0 (TRUE) si se llegó al fin de fichero, de otro modo devuelve 0 (FALSE) Ejemplo: if (fichero1.eof()){ //fin de fichero, no hay más datos }
  • 11. is_open(): Es una función que devuelve un valor diferente a 0 (TRUE) si el fichero asociado al stream está abierto, de otro modo devuelve 0 (FALSE). Ejemplo: if (fichero1.is_open()){ cout<<el fichero está abierto; }  tellp(), es una función que devuelve como resultado la posición actual (tipo pos_type) de un stream de salida.  seekp(posición, posición_inicial), sitúa el lugar de escritura indicada en posición en forma relativa a posicion_inicial, la cual puede ser ios::beg (comienzo), ios::cur (actual), ios::end (fin).
  • 12.  Existe una manera de manipular ficheros en C++ mediante los denominados streams.  Un stream representa un flujo de información, desde el programa a un dispositivo o periférico de salida, o desde un periférico de entrada al programa  La manera de utilizar un stream de entrada es: stream_entrada >> variable;  La manera de utilizar un stream de salida es: stream_salida << información.
  • 13. Hasta el momento se han utilizado dos streams predefinidos:  cin es un stream de entrada asociado al teclado  cout es un stream de salida asociado a la pantalla Pueden definirse stream de entrada y/o salida y asociarlos a un fichero, de manera que se puedan recibir datos del fichero y/o enviar datos al fichero respectivamente.  La librería que se debe utilizar es <fstream.h>.  Se debe declarar un stream mediante el constructor: fstream nombre_stream (nombre_fichero, opciones);
  • 14. Las opciones indican diferentes modos entre los cuales se encuentran:  ios::in: Crea un stream de entrada, es decir, para lectura de datos del fichero  ios::out: Crea un stream de salida, es decir, para escritura de datos en el fichero  ios::ate: Hace que la posición inicial sea al final del fichero  ios::app: Se sitúa al final del fichero antes de cada escritura  ios::trunc: Borra cualquier cosa que pudiera haber en el fichero  ios::nocreate: Si el fichero no existe fallará  ios::noreplace: Si el fichero existe fallará  ios::bin: Abre el fichero como binario
  • 15. Ejemplo:  stream de salida asociado al fichero prueba.txt. Se borra cualquier contenido del mismo. fstream fichero1 ("prueba.txt", ios::out|ios::trunc)  stream de entrada asociado al fichero prueba.txt fstream fichero2 ("prueba.txt", ios::in);
  • 16. Cuando se quiere guardar información de estructuras o registros en C/C++ se deben utilizar las funciones de ficheros de la librería <stdio.h>.  Existe un tipo de datos denominado FILE por medio del cual se manipulan los ficheros.  Entre las funciones definidas para trabajar con ficheros se encuentran:
  • 17. FILE* fopen (const char *name, const char *mode): recibe como parámetros:  Un string name con el nombre del fichero  Un string mode con el modo de apertura del fichero que puede ser: "r" : abre fichero existente para lectura. Si no existe falla la operación. "w" : abre fichero para escritura. Si existe, sus contenidos se borran. "a" : abre fichero para escritura. Si existe, se agregan los datos al final "r+" : abre fichero para lectura y escritura. El fichero debe existir. "w+" : abre fichero para lectura y escritura. Si existe, sus contenidos se borran "a+" : abre fichero para lectura y escritura. Si existe, se agregan datos al final
  • 18.  int fclose (FILE *file) La función fclose cierra el fichero abierto file.  size_t fread (void *pbuffer, size_t size, size_t number, FILE *file) Se usa para leer desde el fichero, y recibe como parámetros:  Un puntero a FILE del fichero file desde el cual se quiere leer.  Un número number de tipo size_t que indica la cantidad de elementos que se quiere leer.  Un número size de tipo size_t que indica el tamaño en bytes de cada elemento.  Un puntero pbuffer a un lugar donde se copiarán los elementos leídos.  size_t fwrite (void *pbuffer, size_t size, size_t number, FILE *file) La función fwrite se usa para escribir en el fichero, y recibe los mismos parámetros que la función fread.
  • 19.  int ftell (FILE *file) La función ftell devuelve un int que indica el número de bytes desde el comienzo hasta la posición donde se encuentra el cabezal de lectura.  int feof (FILE *file) Devuelve 0 mientras las lecturas hechas no lleguen al final del fichero.  void rewind (FILE *file) La función rewind sitúa el cabezal de lectura al inicio del fichero.
  • 20. Luís, Joyanes aguilar. (2003): “Fundamentos de Programación: Algoritmos, Estructuras de Datos y Objetos.” Madrid.Mc-Graw Hill. Cuarta edición. Páginas 201 hasta 346 (Capitulo #9) .  Anónimo, Fundamentos de informática [en línea], Ficheros, Fecha de consulta: 28-12-2012, Disponible en: http://dmi.uib.es/~abasolo/foninf/2002-2003/capitulos/6- ficheros.html