Tag Archives: Turbo C++

Función que devuelve un string en Turbo C++

#include <string.h>
#include <stdlib.h>

/*
	Función que devuelve un string con el contenido de 
	un array de unsigned char.
	Includes necesarios:
	<string.h> - para strcpy y strcat
	<stdlib.h> - para itoa
	
	Uso:
	unsigned char tmp[]; // array donde se va a guardar el string
	cprintf("Linea: %s\n\r",getStrLine(3,tmp));
	
	Funciones relacionadas con strings:
	strcpy - Para copiar
	itoa   - Convierte int a string
	strcat - concatena string
	

	Nota:
	La variable donde se va a guardar la cadena tiene que
	declararse fuera de la función y pasarse como parámetro.
	Que luego la devuelva no es necesario pero conveniente.
*/
unsigned char * getStrLine(int y, unsigned char * buffer) {
	char tmp[10]; 			// variable temporal para guardar el string
	
	strcpy(buffer,""); 		//El string se pone como cadena vacia.
	for (int i = 0; i < _w; i++) {
		itoa((int)map[i][y],tmp,10); //El unsigned char se fuerza a (int) y se convierte en string
		strcat(buffer,tmp);			 //se concatena el string
	}
	
	return buffer;
}

Lectura del teclado en Turbo C++

#include <conio.h>
#include <stdio.h>

#define KEY_ENTER 13
#define KEY_ESC 27
#define KEY_SPACE 32
#define KEY_UP 72
#define KEY_LEFT 75
#define KEY_RIGHT 77
#define KEY_DOWN 80

int main(void) {
	int c;

	clrscr();
	cprintf("Pulsa las teclas del cursor\r\n");
	cprintf("Esc para salir\r\n");
	//getch();

	while (1) {
		c = getch();

		if (c==KEY_ESC) {
			return 0;
		}
		if (c == 0 ) {
			c = getch();
		}
		if (c == KEY_ENTER) {
			cprintf("Enter\n\r");
		} else if (c == KEY_LEFT) {
			cprintf ("LEFT\n\r");
		} else if (c == KEY_RIGHT) {
			cprintf ("RIGHT\n\r");
		} else if (c == KEY_UP) {
			cprintf ("UP\n\r");
		} else if (c == KEY_DOWN) {
			cprintf ("DOWN\n\r");
		} else if (c == KEY_SPACE) {
			cprintf ("Space\n\r");
		} else {
			cprintf("%d\n\r",c);
		}
	}

	return 0;

}