Manejo de ficheros
El manejo de ficheros en C++ es diferente que en C normal. Igual que C normal solo
hay un tipo de flujo (definido como FILE *), en C++ hay tres tipo de flujo:
ifstream fich_ent; // Definimos fich_ent como flujo de entrada
ofstream fich_sal; // Definimos fich_sal como flujo de salida
fstream fich_entrada_salida; // Definimos fich_entrada_salida como flujo de
// entrada y salida.
Igual que en C normal una vez definido el flujo (con la instruccion FILE *), tenemos
varias funciones para manejar archivos:
void open(char *nombrearchivo, int modo, int acceso);
Esta funcion abre un fichero. Hay que pasarle unos parametros:
nombrearchivo: nombre del archivo a abrir.
modo: dice como se abre el archivo, puede ser uno o varios de estos:
-ios::app todo lo que escribimos en el archivo se añade al final ( pero hay que
poner el ptro al final del archivo con fseek )
-ios::ate añadiendo esto a ios::app ya nos pone automaticamente el ptro al
final del archivo
-ios::binary abre el fichero para operaciones binarias, pero no convierte el
valor leido a caracter ( si lee el numero 65 no nos devuelve ‘A’
sino 65 )
-ios::in abre el fichero para operaciones de entrada ( es decir para leer datos
del fichero ). Solo se puede utilizar con un flujo de entrada ( ifstream )
-ios::out abre el fichero para operaciones de escritura ( para escribir datos en
el fichero ). Solo se puede utilizar con un flujo de salida ( ofstream )
-ios::nocreate hace que se produzca un fallo si la funcion open() si el archivo
especificado no exista
-ios::noreplace igual que la anterior provoca un fallo en open() si el archivo ya
existia
-ios::trunc destruye el contenido del archivo, si existia previamente, y deja la
longitud del archivo en cero
Para unir varios modos se utiliza la “o logica” (||).
acceso: indica de que tipo es el archivo al cual vamos a acceder.
Hay cinco tipos de acceso::
0 Archivo normal
1 Archivo de solo lectura
2 Archivo oculto
4 Archivo del sistema
8 Bit de archivo activo ( solo se usa en entornos multitarea para saber el
archivo activo )
Todo este rollo se ve mejor con un ejemplo:
#include <iostream.h>
#include <fstream.h>
ifstream entrada; // Definimos un flujo de entrada
ofstream salida; //Definimos un flujo de salida
entrada.open(“pepe.dat”, ios::in, 0); // Abrimos el fichero en modo lectura
salida.open(“pepito.dat”, ios::out,0); // Abrimos el fichero en modo escritura
entrada.close(); // Cerramos pepe.dat
salida.close(); //Cerramos pepito.dat
Todas estas definiciones y funciones estan definidas en <fstream.h>
Comentarios
Publicar un comentario
Hola que tal,dime tu opinión