// registros.cpp - Copiar un fichero en otro
#include <iostream>
#include <fstream>
using namespace std;

struct t_tfno
{
  char nombre[30];
  char direccion[40];
  long telefono;
}; 

int main()
{
  // Escribir registros en un fichero
  {
    t_tfno persona; // estructura de tipo t_tfno
    int tam = sizeof(t_tfno);
    // Abrir el fichero para escribir
    ofstream ofs("lista.tfno");
    // Leer los datos
    cout << "Nombre:    "; cin.getline(persona.nombre, 30);
    cout << "Dirección: "; cin.getline(persona.direccion, 40);
    cout << "Teléfono:  "; cin >> persona.telefono;
    // Escribir el tamaño del registro y su contenido
    ofs.write(reinterpret_cast<char *>(&tam), sizeof(int));
    ofs.write(reinterpret_cast<char *>(&persona), sizeof(persona));
    // Cerrar el fichero
    ofs.close();
  }
  // Leer registros en un fichero
  {
    t_tfno persona; // estructura de tipo t_tfno
    int tam = sizeof(t_tfno);
    // Abrir el fichero para leer
    ifstream ifs("lista.tfno");
    // Leer el tamaño del registro y su contenido
    ifs.read(reinterpret_cast<char *>(&tam), sizeof(int));
    ifs.read(reinterpret_cast<char *>(&persona), sizeof(persona));
    // Mostrar los datos leídos
    cout << "Tamaño:    " << tam << endl;
    cout << "Nombre:    " << persona.nombre << endl;
    cout << "Dirección: " << persona.direccion << endl;
    cout << "Teléfono:  " << persona.telefono << endl;
    // Cerrar el fichero
    ifs.close(); 
  }
  system("pause");
}
