// Programación en C++ para Ingenieros, Ed. Thomson Paraninfo, 2006
// Capítulo 10: Ficheros





// Inclusión de librerías
#include <iostream>
#include <fstream>
#include <string.h>

using namespace std;

// Declaración de tipos
typedef char id[20];
typedef struct {
    id nombre, apellido;
    int edad;
}persona;

int main(void)
{
    ifstream fEntrada;
    int pos;
    persona p;

    fEntrada.open("datosPersona.bin");

    if (!fEntrada)
        cout << "Error abriendo el fichero" << endl;
    else
    {
        cout << "Entra el número de persona a mostrar: ";
        cin >> pos;

        if ((pos - 1) * sizeof(persona) >
                fEntrada.seekg(0, ios::end).tellg())
            cout << "Ese elemento no existe" << endl;
        else
        {
            // Nos ponemos en la posición de la persona número pos
            fEntrada.seekg((pos - 1) * sizeof(persona));

            fEntrada.read((char*)(&p), sizeof(p));
            cout << p.nombre << endl;
            cout << p.apellido<< endl;
            cout << p.edad << endl;
        }
    }


    return 0;
}