<font color="#000000"><font face="courier new,monospace">Bueh, no tenés que aprender nada raro. Es imprimir caracteres en la pantalla. Me parece que están dramatizando.</font></font><div><font color="#000000"><font face="courier new,monospace">Si lo que querés es algo rápido, es lo más rápido que podés hacer.</font></font></div>

<div><font color="#000000"><font face="courier new,monospace"><br></font></font></div><div><font class="Apple-style-span" face="'courier new', monospace">Veo que ni siquiera te dió para leer el link que te mandé, donde ya tenés hasta la función hecha en C.</font></div>

<div><font class="Apple-style-span" face="'courier new', monospace"><br></font></div><div><font class="Apple-style-span" face="'courier new', monospace"><span class="Apple-style-span" style="font-family: 'Times New Roman'; background-color: rgb(255, 255, 255); font-size: medium; "><h3>

With printf()</h3><p>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 <code>textcolor()</code> which does this automatically. You can use it in your programs along with the #define constants. The text version of this program is <a href="http://linuxgazette.net/issue65/misc/padala/color.c.txt">here</a></p>

<h3><code>textcolor()</code></h3><table bgcolor="#C5C5C5" width="450"><tbody><tr><td><pre>#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);
}
</pre></td></tr></tbody></table><p>The <code>textcolor()</code> is modeled against the Turbo C API function. You call the function to set the color and then print with a <code>sprintf()</code> (a function used in Turbo C to produce console output in color).</p>

</span></font></div><div><font color="#000000"><font face="courier new,monospace"><br clear="all"></font></font><div><br></div>.:-:ChiCkENURiNE:-:.<div>+ <a href="http://gplus.to/cknu" target="_blank">http://gplus.to/cknu</a></div>

<br>
<br><br><div class="gmail_quote">2011/10/25 Sylvia <span dir="ltr"><<a href="mailto:Mapalapa_Igu@yahoo.com.ar">Mapalapa_Igu@yahoo.com.ar</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

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