/** @(#) utilpos/interfacepos.cpp */
/**
* Funciones para entrada y salida del usuario.
* @author Omar Posada Villarreal
* @version 1.2, 07/01/2002 boolString()
* @version 1.1, 27/12/2001 getString()
* @version 1.0, 08/12/2001
*/

#include "interfacepos.h"
#include <iostream>
#include <string>
using namespace std;

// public---------------------------------------------------------------------

/**
* Convierte un string en un arreglo de char.
* @return arreglo de char con el contenido de s.
*/
char *stringToCharArray(string s) {
	int len = s.length();

	char *pCh = new char[ len + 1 ]; // including null


        // Copia el contenido en el nuevo espacio
	s.copy( pCh, len, 0 );
	pCh[ len ] = 0;  // add null terminator

        //cout << "\npCh: " << pCh;
	return pCh;
}

/**
* Espera el Enter. Detiene la ejecucion del programa
* @version 2.0, 04/01/2002
*/
void waitEnter() {
	cout << "\t[ENTER]";
        cin.get();
	// No usar en UNIX <stdio> getc(stdin);
}

/**
* Muestra un mensaje en la siguiente linea y coloca la entrada con espacios
* (blancos) de hasta 1000 caracteres, en un "string".
* @param message Mensaje a mostrar.
* @param theString Variable de entrada.
*/
void getString(const string message, string &theString) {
	char ch[1000];

	cout << endl << message;
	cin.getline(ch, 1000);
	theString = ch;	// string = char[]
}

/**
* Muestra "true" o "false, dependiendo del valor del parametro.
* @param var Variable booleana.
* @return Cadena con el valor de la variable.
*/
string boolString(bool var) {
	// tip: Solo los miembros de una clase pueden ser const o volatile
	return (var ? "true" : "false");
}
// private--------------------------------------------------------------------
// Fin-------------------------------------------------------------------------