Para realizar E/S en archivos debe incluirse en el programa el archivo cabecera fstream.h. Un archivo se abre mediante el enlace a un flujo. Tenemos 3 tipos de flujo: de entrada, de salida o de entrada-salida. Antes de abrir un fichero debe obtenerse el flujo. Los 3 flujos tienen funciones constructoras que abren el archivo automáticamente. Una vez realizadas las operaciones con los ficheros debemos cerrar el fichero mediante la función close( ).
|
FLUJO
|
DESCRIPCIÓN
|
|
ofstream out
|
De salida.
|
|
ofstream in
|
De entrada.
|
|
fstream io
|
De salida-entrada.
|
En C++ podemos trabajar con 3 tipos de ficheros: secuencial, binario sin formato y acceso aleatorio. Todos comparten el método de apertura, pero cada uno de ellos tienen métodos propios para ir escribiendo y leyendo.
SINTAXIS:
flujo("nombre_fichero.extension");
EJEMPLO: Fichero secuencial.
#include <iostream.h>
#include <fstream.h>
#include <stdio.h>
#include <stdlib.h>
void main()
{
ofstream out("fichero.tex");
if (!out)
{
cout << "El archivo no puede abrirse";
exit(1);
}
char cad[80];
cout << "Escritura de cadenas. Salir dejar en blanco\n";
do
{
cout<<": ";
gets(cad);
out << cad << endl;
}while(*cad);
out.close();
}
BINARIOS SIN FORMATO: Las funciones E/S son read()y write(). La función read() lee num bytes del flujo asociado y los coloca en la variable. La función write() escribe num bytes de la variable en el flujo asociado.
PROTOTIPOS:
in.read(variable,num_bytes);
out.write(variable,longitud_cadena);
EJEMPLO: Fichero binario. Escritura.
#include <iostream.h>
#include <fstream.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void main()
{
ofstream out("texto.tex");
if (!out)
{
cout << "El archivo no puede abrirse";
exit(1);
}
char cad[80];
cout << "Escritura de cadenas. Salir dejar en blanco\n";
do
{
cout<<": ";
gets(cad);
out.write(cad,strlen(cad));
}while(strlen(cad));
out.close();
}
EJEMPLO: Fichero binario. Lectura.
#include <iostream.h>
#include <fstream.h>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
void main()
{
clrscr();
ifstream in("texto.tex");
if (!in)
{
cout << "El archivo no puede abrirse";
exit(1);
}
char cad[80];
cout << "Lectura de cadenas\n";
in.read(cad,80);
cout << cad;
in.close();
getch();
}
ALEATORIOS: También podemos realizar el acceso aleatorio. Las funciones que se utilizan son seekg() y seekp() para posicionarnos y las funciones get() y put() para leer y escribir en el fichero. Las funciones de posicionamiento y leer-escribir van emparejadas.
PROTOTIPOS:
out.seekp(posicion,lugar_de_comienzo);
out.put('char');
in.seekg(posicion,lugar_de_comienzo);
in.get(var_char);
|
LUGAR
|
DESCRIPCIÓN
|
|
ios::beg
|
Desde el principio.
|
|
ios::end
|
Desde el final.
|
|
ios::cur
|
Posición actual.
|
EJEMPLO: Fichero aleatorio. Escritura.
#include <iostream.h>
#include <fstream.h>
#include <stdlib.h>
void main()
{
fstream out("texto1.txt",ios::in|ios::out);
if (!out)
{
cout << "El archivo no se puede abrir";
exit(1);
}
out.seekp(4,ios::beg);
out.put('z');
out.close();
}
|
1. Introducción al Lenguaje C El lenguaje C apareció en 1972, en el diseño del sistema operativo UNIX. Este... [10/05/04] |
73.701 | ||||
|
2. Guía de Comandos Rápidos de Linux Linux es la principal expresión del software libre. Linux ofrece al usuario la... [14/06/04] |
22.018 | ||||
|
3. Action Script 3. Lenguaje de programación Action script 3 . Este curso de informática fue realizado especialmente para las... [04/05/11] |
274 |
|
|||