// test.cpp - Funciones para leer datos de forma segura
#include <iostream>
#include <string>
#include "leerdatos.h"
using namespace std;

int main()
{
  char   cDato;
  short  hDato;
  int    iDato;
  float  fDato;
  double dDato;
  string sDato;
  bool salir = false;
  // Opciones del menú
  static char *opciones[] = 
  { 
    "Leer un char",
    "Leer un short",
    "Leer un int",
    "Leer un float",
    "Leer un double",
    "Leer un string",
    "Salir"
  };
  int nOpciones = sizeof(opciones)/sizeof(char*);
  
  do
  {
    switch (menu(opciones, nOpciones))
    {
      case 1:
        cout << "char: "; leerDato(cDato);
        cout << "Dato leído: " << cDato << endl;
        break;
      case 2:
        cout << "short: "; leerDato(hDato);
        cout << "Dato leído: " << hDato << endl;
        break;
      case 3:
        cout << "int: "; leerDato(iDato);
        cout << "Dato leído: " << iDato << endl;
        break;
      case 4:
        cout << "float: "; leerDato(fDato);
        cout << "Dato leído: " << fDato << endl;
        break;
      case 5:
        cout << "double: "; leerDato(dDato);
        cout << "Dato leído: " << dDato << endl;
        break;
      case 6:
        cout << "string: "; leerDato(sDato);
        cout << "Dato leído: " << sDato << endl;
        break;
      case 7:
        salir = true;
        break;
    }
  }
  while(!salir);
  leerDato<string>(sDato);
  cout << sDato << endl;
}

