// leerdatos.cpp - Definiciones de funciones
#include "leerdatos.h"
using namespace std;

bool leerDato(string& dato)
{
  bool v = true;
  cin.exceptions(ios::failbit | ios::badbit);
  try
  {
    getline(cin, dato);  // leer una variable de tipo string
    v = true;
  }
  catch(ios_base::failure& e)
  {
    if (cin.eof())
    {
      cin.clear();
      v = false; // se pulsó Ctrl+Z
    }
  }
  return v;
}

int menu(char *opciones[], int numOpciones) 
{
  int i;
  int opcion = 0;

  cout << "\n__________________________________________\n\n";
  for (i = 1; i <= numOpciones; ++i) 
    cout << "    " << i << ". " << opciones[i-1] << endl;
  cout << "__________________________________________\n";
    
  do 
  {
    cout << "\nOpción (1 - " << numOpciones << "): ";
    leerDato(opcion);
  }
  while (opcion < 1 || opcion > numOpciones);

  return opcion;
}
