miércoles, 17 de diciembre de 2014

Ejemplo

#include <iostream>
#include <fstream>
 
using namespace std;

void comprobar_fichero()
{char mes1[20];
ofstream fich1("meses.dat", ios::out | ios::binary);
ifstream fich("meses.dat", ios::in | ios::binary);

fich.clear();

fich.read(mes1, 20);
cout << mes1 << endl;
cout << "Paso la lectura" << endl;

if (fich.good())

cout << mes1 << endl;

else {
cout << "Error al leer de Fichero" << endl;
if (fich.fail()) cout << "Bit fail activo" << endl;
if (fich.eof()) cout << "Bit eof activo" << endl;
if (fich.bad()) cout << "Bit bad activo" << endl;
}

fich.close();
fich1.close();
}
int _tmain(int argc, _TCHAR* argv[])
{
 
int i;

char mes[][20] = { "Enero", "Febrero", "Marzo",
"Abril", "Mayo", "Junio", "Julio", "Agosto",
"Septiembre", "Octubre", "Noviembre",
"Diciembre" };

char cad[20];

ofstream fsalida("meses.dat",ios::out | ios::binary);

// Crear fichero con los nombres de los meses:
cout << "Crear archivo de nombres de meses:" << endl;

for (i = 0; i < 12; i++)

fsalida.write(mes[i], 20);
fsalida.close();
ifstream fentrada("meses.dat", ios::in | ios::binary);
streampos pos = fentrada.tellg();

// Acceso secuencial:
cout << "\nAcceso secuencial:" << endl;
fentrada.read(cad, 20);
do {
cout << cad << endl;
fentrada.read(cad, 20);
} while (!fentrada.eof());

fentrada.clear();

// Acceso aleatorio:
cout << "\nAcceso aleatorio:" << endl;

for (i = 11; i >= 0; i--) {
fentrada.seekg(20 * i, ios::beg);
fentrada.read(cad, 20);
cout << cad << endl;
}

// Calcular el número de elementos
// almacenados en un fichero:
// ir al final del fichero
fentrada.seekg(0, ios::end);

// leer la posición actual
pos = fentrada.tellg();

// El número de registros es el tamaño en
// bytes dividido entre el tamaño del registro:
cout << "\nNumero de registros: " << pos / 20 << endl;
fentrada.close();system("pause");

// comprobación de datos del registro:
comprobar_fichero();
system("pause");
return EXIT_SUCCESS;
} 
 

No hay comentarios.:

Publicar un comentario