[uylug-programming] Menúes en C

Chicken Urine chickenurine at gmail.com
Tue Oct 25 11:02:34 PDT 2011


Bueh, no tenés que aprender nada raro. Es imprimir caracteres en la
pantalla. Me parece que están dramatizando.
Si lo que querés es algo rápido, es lo más rápido que podés hacer.

Veo que ni siquiera te dió para leer el link que te mandé, donde ya tenés
hasta la función hecha en C.

With printf()

What if you want to use this functionality in a C program? Simple! Before
you printf something print this escape sequence to produce it in the desired
color. I have written a small routine textcolor() which does this
automatically. You can use it in your programs along with the #define
constants. The text version of this program is
here<http://linuxgazette.net/issue65/misc/padala/color.c.txt>
textcolor()

#include <stdio.h>

#define RESET		0
#define BRIGHT 		1
#define DIM		2
#define UNDERLINE 	3
#define BLINK		4
#define REVERSE		7
#define HIDDEN		8

#define BLACK 		0
#define RED		1
#define GREEN		2
#define YELLOW		3
#define BLUE		4
#define MAGENTA		5
#define CYAN		6
#define	WHITE		7

void textcolor(int attr, int fg, int bg);
int main()
{	textcolor(BRIGHT, RED, BLACK);	
	printf("In color\n");
	textcolor(RESET, WHITE, BLACK);	
	return 0;
}

void textcolor(int attr, int fg, int bg)
{	char command[13];

	/* Command is the control command to the terminal */
	sprintf(command, "%c[%d;%d;%dm", 0x1B, attr, fg + 30, bg + 40);
	printf("%s", command);
}

The textcolor() is modeled against the Turbo C API function. You call the
function to set the color and then print with a sprintf() (a function used
in Turbo C to produce console output in color).


.:-:ChiCkENURiNE:-:.
+ http://gplus.to/cknu



2011/10/25 Sylvia <Mapalapa_Igu at yahoo.com.ar>

>
> Yo tampoco tengo ganas de aprender secuencias de escape en este
> momento.  No sólo estoy empezando sino que estoy terminando el año.  No
> es el mejor momento para meterme en camisas de once varas.  Todo lo que
> quiero es resolver el problema y pasar al siguiente y punto.
> Por eso, voy a descartar el uso de ese conio.h que me pasaron, tiene
> demasiados errores y yo no me voy a meter a corregir los errores de otro
> para luego corregir los míos :-)
> Vuelvo a ncurses y voy a probar newt.  Con un poco de suerte y cambiando
> el IDE  (Geany compila pero me tira error al querer ejecutar cualquier
> programa),  espero cumplir con la tarea y que me pongan una buena nota
> para pasar de año.
>
>
>
> Un abrazo
> Sylvia
> El 21/10/11 19:59, Eduardo Trápani escribió:
> >> Es un ejercicio para aprender otra cosa, no está enfocado a desplegar
> >> texto en las terminales. Es mucho más fácil hacer 3 constantes con las
> >> secuencias de escape y aregarlas cuando se muestra texto. Es solo para
> >> "embellecer" la salida, estás generando pánico al pedo.
> >
> > A ver ... ella está aprendiendo a manejar la salida a consola junto
> > con un lenguaje.  Yo considero, por todo lo que puse en el mensaje que
> > no tiene sentido que aprenda a manejar secuencias de escape cuando
> > tiene una biblioteca que de manera portable lo resuelve por ella
> > (estamos hablando de que el profesor también está usando una
> > biblioteca para resolver eso).
> >
> > Eso sin mencionar que el artículo[1] que citabas arranca pidiéndote
> > algo como:
> >
> >> echo "^[[0;31;40mIn Color"
> >> The first character is an escape character, which looks like two
> >> characters ^ and [. To be able to print that you have to press CTRL+V
> >> and then the ESC key. All the others are normal printable characters.
> >> You see the string "In Color" in red. It stays that way and to revert
> >> back type this
> >
> > O sea, esto que ves no lo copies y pegues, no, hacé Ctrl-V + Esc para
> > los primero dos y el resto sí escribilo.  Super simple ... Yo
> > realmente hubiera preferido algo copiable-pegable como:
> >
> > echo -e "\033[0;31;40mIn Color"
> >
> > O sea, para alguien que empieza a programar me parece razonable (y no
> > al pedo) mantenerlo lejos de ese código al principio.  Le recomendaría
> > hacerse funciones wrapper para esconder eso ¡y ahí caemos en ncurses!
> >
> > Y ese código sólo anda en la familia vt100, eso incluye TERM=xterm y
> > TERM=linux entre otras, o sea, el 9x% del universo de terminales que
> > podemos encontrar.  Pero por algo existe terminfo, no puedo dejar de
> > lado que no va a andar en otros lados.  Y de eso justamente nos
> > protege ncurses.
> >
> > Yo que sé, no intenté transmitir pánico y no creo que la sugerencia de
> > alejarse de todo eso en esta etapa fuera al pedo.  Pero a cada uno su
> > opinión.
> >
> > Eduardo.
> >
> > [1] http://linuxgazette.net/issue65/padala.html
> > _______________________________________________
> > Uylug-programming mailing list
> > Uylug-programming at listas.uylug.org.uy
> > http://listas.uylug.org.uy/listinfo.cgi/uylug-programming-uylug.org.uy
> >
> _______________________________________________
> Uylug-programming mailing list
> Uylug-programming at listas.uylug.org.uy
> http://listas.uylug.org.uy/listinfo.cgi/uylug-programming-uylug.org.uy
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listas.uylug.org.uy/pipermail/uylug-programming-uylug.org.uy/attachments/20111025/bd6268df/attachment-0005.htm>


More information about the Uylug-programming mailing list