Anda di halaman 1dari 25

c  

   

÷   
 

Ahora ya sólo nos falta saber cómo se borra la pantalla. Pues es tan fácil como
usar:

Code:
clrscr()

(clear screen, borrar pantalla)


Esta función nó solo borra la pantalla, sino que además sitúa el cursor en la
posición (1, 1), en la esquina superior izquierda.

Code:
#include <stdio.h>
#include <conio.h>
int main()
{ clrscr();
Printf ( "Hola" );
getch ();
}

Este método sólo vale para compiladores que incluyan el fichero stdio.h. Si tu
sistema no lo tiene puedes consultar la sección siguiente.

Borrar la pantalla (otros métodos)

Existen otras formas de borrar la pantalla aparte de usar stdio.h.

Si usas DOS:

Code:
system ("cls");
Para DOS

Si usas Linux:

Code:
system ("clear");
Para Linux

Otra forma válida para ambos sistemas:


Code:
char a[5]={27,'[','2','J',0};

/* Para ambos (en DOS cargando antes ansi.sys) */

printf("%s",a);


    

     !"

void textcolor(int color);

Esta función selecciona el color de texto especificado por el argumento color. Esta función
solamente funciona con aquellas funciones que envú}n datos de salida en modo texto
directamente a la pantalla. El argumento color es un número entero entre 0 y 15 y el
número 128, para activar el parpadeo; también se pueden usar constantes simbólicas
definidas en conio.h en lugar de enteros. La función textcolor no afecta cualesquiera de
los caracteres actualmente en pantalla, pero s#Eafecta aquéllas mostradas por funciones
que usan el vú#eo directamente para la salida en modo texto después de llamar a la
función textcolor.

Existen varias constantes simbólicas de colores para usar.

La función textcolor no retorna ningún valor.

ejemplo
#include <conio.h>

int main() {

cprintf( "Ejemplo de \"textbackground\" y \"textcolor\"\r\n\r\n" );

textbackground( BLUE );

textcolor( LIGHTRED );

cprintf( "Este mensaje tiene otro color de fondo y de texto.\r\n" );

textbackground( WHITE );

cprintf( "Este mensaje tiene un color de fondo distinto.\r\n" );

normvideo();

cprintf( "Pulsa una tecla para continuar...\r\n" );

getch();

return 0;

void textbackground(int color);

Esta función selecciona el color de fondo especificado por el argumento color. Esta
función solamente funciona con aquellas funciones que envú}n datos de salida en modo
texto directamente a la pantalla. El argumento color es un número entero entre 0 y 7;
también se pueden usar constantes simbólicas definidas en conio.h en lugar de enteros.
La función textattr no afecta cualesquiera de los caracteres actualmente en pantalla, pero
s#Eafecta aquéllas mostradas por funciones que usan el vú#eo directamente para la
salida en modo texto después de llamar a la función textattr.

Existen varias constantes simbólicas de colores para usar.


#include <conio.h>

int main() {

cprintf( "Ejemplo de \"textbackground\" y \"textcolor\"\r\n\r\n" );

textbackground( BLUE );

textcolor( LIGHTRED );

cprintf( "Este mensaje tiene otro color de fondo y de texto.\r\n" );

textbackground( WHITE );

cprintf( "Este mensaje tiene un color de fondo distinto.\r\n" );

normvideo();

cprintf( "Pulsa una tecla para continuar...\r\n" );

getch();

return 0;

Los colores que se pueden usar son:

Ú „ 
Ú „ 
Ú '  

Ú   
Ú  
Ú c' 
Ú „  
Ú ''  

El numero adelante del color es el código en numero de dicho color.

En algunos casos se pueden usar versiones claras de los colores en el texto, que
son:

Ú DARKGRAY 8
Ú LIGHTBLUE 9
Ú LIGHTGREEN 10
Ú LIGHTCYAN 11
Ú LIGHTRED 12
Ú LIGHTMAGENTA 13
Ú YELLOW 14
Ú WHITE 15

Para el texto ademas se tiene la opcion de hacerlo parpadear (blink), sumando al


color

Ú BLINK 128

osea, digamos asi:


textcolor(RED+BLINK);

OTRO:

void textattr(int atributo);

Esta función asigna ambos colores de primer plano y de fondo en una sola llamada.
(Normalmente, se asignan estos atributos mediante las funciones a textcolor y
textbackground). La

función textattr no afecta cualesquiera de los caracteres actualmente en pantalla, pero


s#Eafecta aquéllas mostradas por funciones que usan el vú#eo directamente para la
salida en modo texto después de llamar a la función textattr.

La información de los colores est#Ecodificado en el argumento atributo según este


diagrama:

Bits

7654321

Pfffpppp

En el argumento atributo de 8 bits:

pppp es el color de primer plano de 4 bits (0-15).


fff es el color de fondo de 3 bits (0-7).

P es el bit de encendido de parpadeo.

Si el bit del parpadeo est#Eactivado, entonces los caracteres parpadean. Esto se puede
lograr añadiendo la constante BLINK al atributo.

Si se usan las constantes simbólicas definidas en conio.h para crear los atributos de texto
usando textattr, ten en cuenta las siguientes limitaciones para el color de fondo
seleccionado:

Sólo se pueden elegir uno de los primeros ocho colores para el fondo.

Deberás mudar el color de fondo seleccionado 4 bits a la izquierda para que estén
colocados en las posiciones correctas de los bits.

Existen varias constantes simbólicas de colores para usar.

#include <conio.h>

int main() {

/* Azul de fondo y rojo claro de texto */

int atributo=BLUE << 4 | LIGHTRED;

cprintf( "Ejemplo de \"textattr\"\r\n\r\n" );

textattr( atributo );

cprintf( "Este mensaje tiene otro color de fondo y de texto.\r\n" );

textattr( atributo + BLINK );

cprintf( "Este mensaje est Eparpadeando.\r\n" );


normvideo();

cprintf( "Pulsa una tecla para continuar...\r\n" );

getch();

return 0;

OTRO

void textmode(int modo);

Esta función selecciona un modo de texto especificado por el argumento modo. Este
argumento puede ser una constante simbólica del tipo de enumeración text_modes (en
conio.h).

Cuando se llama a la función textmode, la ventana en uso es reiniciada a la pantalla


completa, y los atributos de texto en uso son reiniciados a normal, correspondiendo a una
llamada a normvideo. Especificando LASTMODE a textmode causa el modo de texto más
recientemente seleccionado a ser seleccionado de nuevo.

La función textmode deberú} usarse solamente cuando la ventana o pantalla es en modo


de texto (supuestamente para cambiar a un modo de texto diferente). Este es el único
contexto donde se usa la función textmode. Cuando la pantalla est Een modo gráfico,
usa la función restorecrtmode en vez de salirse temporalmente a mode de texto.

Existen varias constantes simbólicas para indicar los modos de texto.

#include <conio.h>

int main() {
struct text_info *ti;

unsigned char modo_original;

modo_original = ti->currmode;

clrscr();

cprintf( "Ejemplo de \"textmode\"\r\n\r\n" );

cprintf( "Cambiamos de modo: BW40.\r\n" );

cprintf( "Pulsa una tecla para continuar...\r\n" );

getch();

textmode( BW40 );

cprintf( "Ahora cambiamos a modo: C4350.\r\n" );

cprintf( "Pulsa una tecla para continuar...\r\n" );

getch();

textmode( C4350 );

cprintf( "Ahora cambiamos a modo \"normal\".\r\n" );

cprintf( "Pulsa una tecla para continuar...\r\n" );

getch();

textmode( modo_original );

return 0;

}
POSICIONAMIENTO DEL CURSOR

//Funcion: gotoxy()

//Sintaxis:

//void gotoxy(int x, int y);

//Descripcion: Mueve el cursor de la ventana de texto a la posicion segun las coordenadas

//especificadas por los argumentos x e y. Si las coordenadas no son validas entonces

//la llamda a la funcion gotoxy es ignorada. Los argumentos no pueden ser 0.

//Ejemplo:

#include <conio.h>

void main() {

clrscr();

cprintf( "Ejemplo de \"gotoxy\"\n\n" );

cprintf( "1 Elinea " );

cprintf( "2 Elinea" );

gotoxy( 5, 20 ); //me posiciono en "renglon" 20

cprintf( "3 Elinea, pero sale £ltima" );

gotoxy( 20, 2 ); //me posiciono en el "renglon" 2

cprintf( "4 Elinea, pero sale segunda" );

gotoxy( 1, 15 ); //me posiciono en el "rengon" 15

cprintf( "Pulsa una tecla para continuar...\r\n" );

getch();

Usa la funcion gotoxy(int x, int y);

como dice la palabra Go To XY EN español ir a XY, donde X y Y son las cordenadas de la pantalla

Normalmente la pantalla esta dividida en 80 columnas y 25 filas...


Solo tienes que Colocar las coordenadas.. Supongamos que quieres poner el cursor en la columna
3 fila 10.. Coloca el comando

gotoxy(3,10);

Esta funcion pertenece a la libreria conio.h asi que no olvide colocar en el encabezado

#include<conio.h>

^    


  

c     



       

  
     
  
Π   
 

 

    
 

   
  

  


x   

   
   
        
   !"  
  #!"  
  $
#% 
  &!"  
  #%
  
  '!"  
  
 $ 
  (      
  

 % 
)

Normalmente, al ejecutar un programa escrito en lenguaje C, el cursor se


posiciona (por defecto) en la primera columna de la primera fila.

_ À 



A partir de esa posición, se mostrarán por pantalla los datos de salida de dicho
programa.
Ejemplo 1 (ejemplo_11_33_1.c del libro): Si se escribe

#include <stdio.h>

int main()
{
printf( "uno dos tres" );

return 0;
}

Tal cual está escrita la función printf, por pantalla se verá el texto "uno dos tres"
pegado a la esquina superior izquierda de la misma.

uno dos tres

Hasta ahora, no nos hemos preocupado del lugar exacto de la pantalla donde
queremos que se muestren los datos de salida. Sin embargo, si deseamos
visualizar dicho texto en otro lugar de la pantalla, por ejemplo, en la segunda línea:

uno dos tres

Esto se puede conseguir haciendo uso de la secuencia de escape nueva línea


(\n).

printf( "\nuno dos tres" ); (ejemplo_11_33_2.c del libro)

Partiendo de que, inicialmente, el cursor se encuentre en la primera columna de la


primera fila, es decir, en la esquina superior izquierda de la pantalla, la secuencia
de escape nueva línea (\n) lo moverá al principio de la segunda fila y, a
continuación, se escribirá el texto "uno dos tres". Obsérvese que, los caracteres
que forman la secuencia de escape, (\) y (n), no aparecen en pantalla.

La instrucción anterior hace lo mismo que las dos siguientes

printf( "\n" );
printf( "uno dos tres" ); (ejemplo_11_33_3.c del libro)

Ejemplo 2: Si por pantalla se quiere ver


uno
dos
tres

hay que escribir

printf( "uno\ndos\ntres" ); (ejemplo_11_34_1.c del libro)

El proceso de ejecución de esta instrucción es el siguiente: justo en la esquina


superior izquierda de la pantalla (primera línea) se muestra el texto "uno".
Después, una secuencia de escape nueva línea (\n) mueve el cursor al principio
de la línea siguiente (segunda línea), en donde se visualiza el texto "dos".
Posteriormente, otra secuencia de escape nueva línea (\n) vuelve a mover el
cursor al principio de la línea siguiente (tercera línea) y, finalmente, se muestra el
texto "tres".

La instrucción anterior es equivalente a:

printf( "uno" );
printf( "\ndos" );
printf( "\ntres" ); (ejemplo_11_34_2.c del libro)

Igualmente, se podría escribir

printf( "uno\n" );
printf( "dos\n" );
printf( "tres" ); (ejemplo_11_34_3.c del libro)

Ejemplo 3: Para visualizar

uno dos tres

se puede escribir

printf( "\n uno dos tres" ); (ejemplo_11_35.c del libro)

Ejemplo 4: Y para mostrar

uno
dos
tres

escribiremos, por ejemplo,

printf( "\n uno\n dos\n tres" ); (ejemplo_11_36.c del libro)

La secuencia de escape V  


 V  (\t) mueve el cursor a la posición
siguiente del tabulador horizontal de la pantalla. Entre cada posición hay ocho
caracteres, por tanto, dichas posiciones están en las columnas 1, 9, 17, 25, 33, 41,
49, 57, 65 y 73.

Ejemplo 5: De la instrucción

printf( "diez\tveinte\ttreinta" ); (ejemplo_11_37.c del libro)

se obtiene por pantalla

diez veinte treinta

Obsérvese que, la d (de diez), la v (de veinte) y la primera t (de treinta) están en
las posiciones del tabulador horizontal 1, 9 y 17, respectivamente. Gráficamente,
representando los espacios en blanco mediante guiones (-), en pantalla se
muestra:

1 9 17 25 ...
diez----veinte--treinta

Entre el carácter d (de diez) y la v (de veinte) hay exactamente ocho caracteres
(la v no se cuenta), al igual que entre la v (de veinte) y la primera t (de treinta).

Las secuencias de escape    (\") y     V  (\\) sirven para


mostrar por la pantalla los caracteres    (") y     V  (\),
respectivamente.

Ejemplo 6 (ejemplo_11_39_1.c del libro): Al escribir

printf( "\n\t\t7 de julio \"San Fermin\"" );


en la segunda línea de la pantalla se mostrará, a partir de la tercera posición del
tabulador horizontal (columna 17), el mensaje: "7 de julio "San Fermin""

1 9 17 25 ...

7 de julio "San Fermin"

^ *  * +,


  
  
    

£



   
 
        
© ©
©    
 
        


© ©    
 

    
  

 
 
 
 
 

     
   
 

      
 
   
÷  
÷ 

  
 
  
     
    

 
V  V 
   
   


 

x   

   
   
   *  *   
  -^   . %
% .$%
#%   
*  * %
 %
$%
#% 
  /    ^     
  (     
  

 % 
)


^ 0    0   

  
   
    
    
V© 
 
  
   

! 

"#$÷%&$& £   


÷ 
  
"#$&c ÷%&$&
    
÷ 
   
"$'£÷%&$&
 



(
x   

   
  12 $3
0 455 

0  067-89:;<67< 
   
   0     
  :1        
   1 1= 
   >
? 1 
   /  ^       
0  0@7:;<67< 
   1>
A    BC 
 1 
*0 D455??0 D45 5 
0 4  
   7 E => 
55440 B68=@7 
  (     
  
0  0@7<F/-:;<67< 

 % 
)


   

   
 

  
       

 

 )*) 

)+ ÷) 

  
     
  
*  

    
 
 + ÷


,%- c$ + ÷&
%
     
 
  

  )+$ ÷)
    
*.

÷$£'/$

x
 
x
 


0
 *. 

)+ ÷) 
  
 
 
1
  
 
 


x
   2     


   3
3 

  
  
    
 
x
  
2    

 
  
   
   

  

  
 
 
  

  
 



   

   
 
 
  


01
0 '
    

)+ ÷)  

  
 
    

 
    

 
 + ÷
   

     
    
   
 ÷  
 

  
 
     

  
 
  

   




 
1 
   


EJEMPLOS DE GOTOXY

x
  
2
x
   2
 
 
0
  
  4 
 .5. 
 
)6 
6) 
  
1



666666666666666666666666666666666
$ 
 
x
   2
x
  
2
 
 
0
  
  . 
 4*  
)6) 
 .7*  
)666) 
 .8**  
)66666) 
 .4*.  
)6666666) 
 .8*4  
)66666) 
 .7*5  
)666) 
 4*8  
)6) 
  
1
CREACION DE VENTANA

ù © V 

   9
9

¬$   %   & ' %( )* +


 %( $   )
, + +
 -. ( $/0(  0(1
 ,  ' %(  0(   
    ($  +  0(
(    (   (  
1 

        


     
   
  
  

   


x *  *

 0+:@234G  *: 

CC6'=G  *( 
-<6;-H:/--I/:JG ( KG@9* 
;8@H
G(/</F*(
-(/</F
( 

*  

 GF0:-76=
9 G  **  
1L 
 GF096H<7M=
( NF% 
1L 
=
 9G  *( * 

*(
( 
)
 % 
)

 G8@/(8G F K8@6H/@:8  
K8@6H/@:(^8  

-(6H<:- 
  :6 * 

G@9:-/66O* 
KG@9*  
F6PF 

CC6 =< G  *:
*  16+4+ G@9:-/66O 
* 4% 
*  G ( 4G ( 
*  1:4% 
*  1G 4% 
* 8  48   
* 8 4- 8 @;--
8980/((-8:/H87@ 
* : 4- : @;--
89:0/<<7G 
* 1I L  4KI<;6K :7-7<0G8@97GQ 
* +F @4@;-- 
* +:@40+:@ 
* 8 64- 8 @;--
8980/((-8:/H87@ 

D<:?* 

FI @;--
G  *< RD
 D

FI08:7@O:-/F/H87@SFI07J 
 % 
)

CC6#=: G  *
* 4:G  *
G60O0:-8@H9P

0+:@

H *  *

G607T<-/((9G8@97G

:G0;69R/;-H
:G0;69R/;-H
#'%
 #%

@;--
@;--
8  
@;-- 

* 44@;-- 

FI @;--
G  *: RD
 D

FI08:7@O:-/F/H87@SFI07J 
 % 
)

6 *G  ** 
 :6 * 
;G  **  

CC6&=HF- 
*PF?F
@;--
%
% % 

H F?F 
9 F?F 
)
 F*( 
)

/
 
           




 
  
: 
        
 


  
 

  
d  
  
 
ù ÷  +  - + 2  $  , ('( 

 
, .% '0(3'   - - + + % 
(  ( $/' (%  +( $     4 , 0(- 
  (( ' $/c(   (0(- +  5  
(  + , ,(   677

÷ -


 

  
   ÷;;

 0+:@234G  *: 


 $       +   + (  5  ' ( + $ 
% (   + 

G@9:-/66O* 
*  16+4+ G@9:-/66O 
* 4% 
*  G ( 4G ( 
*  1:4% 
*  1G 4% 
* 8  48   
* 8 4- 8 @;--
8980/((-8:/H87@ 
* : 4- : @;--
89:0/<<7G 
* 1I L  4KI<;6K :7-7<0G8@97GQ 
* +F @4@;-- 
* +:@40+:@ 
* 8 64- 8 @;--
8980/((-8:/H87@ 

D<:?* 

FI @;--
G  *< RD
 D

FI08:7@O:-/F/H87@SFI07J 
 % 
)


     


G F     
 ÷ -


 
  <  
   
   G@9:-/66O 
<:       
   


16+

  + 3  (( 



    8 9:;,-(    $  8<9:;= +
 +( ( 

 G ( 

>(  <7> (   


1:

   % 2++      = + 

1G 

   % 2++   $  = + 

8  

?          28 0(+  +  1+ 


<c 8;;

8 

?   .% 8@A@A;,+ (  ((   ¬ B 

: 

?   (  0( 1+   $  

1I L  

>  -    -( $  

+F @

+   ( cC (  $    

+:@

+  -   

8 6

?   .0(38DEDE;,(     ' 0( (  


/0(   $  

 (0( +('  C,   0($+ 1   


+           ++ /    (( 
+8( ;++ / ((  1+ -(,(
 +'-( /9 -(0(  + ,( 
(2%(+   1+    '( (+  9 
$ '( %( %( 0(   $( + 1
   1+  -(0(+ ( +

  &  ÷    


    

 


    

 
 
=
c

d    
 

%
            



$     
 
:G  *  
 

    <'   !




KG@9*  
* 4:G  *
G60O0:-8@H9P

0+:@

H *  *

G607T<-/((9G8@97G

:G0;69R/;-H
:G0;69R/;-H
#'%
 #%

@;--
@;--
8  
@;-- 

     G60O0:-8@H9P   


  


 

   !    
 


   

<
 
 
   
   
    




  
 
   0+:@!      
   

£   


      
     
        
 

 

    
      



     
G607T<-/((9G8@97G    

+
 
 !      
  
£  
 
     


  
    :G0;69R/;-H
:G0;69R/;-H
&#%
#'% 
 
 
 >?  
       

  
   


  
+    >?
  :G0;69R/-H 

 9
9

 !    
    

&      
     
  

  >   

   
       
  

  ?

 


 

  
 
 
       

  

 
    

  
  
 

  
  @;--
@;--
08  
@;-- 

 
  
^    
  
 
  
 
     



  
    


9
9 


 
 
 

    

    
÷ 

 




 
 
     


    

 

  
 

  
   
   
 
   
 
 

    

 
 

    
 


 
 
 
     
  
     
 
     G F      
  

   

  
 
 
  
  

   
 @ !


   

      @;--  
 

%
  
÷  
^ U %      
 
  

<  
  
 
 
)9

)  
  
   
   
      
  
9


 
   
   <     
 9

   
%
  #%

 
       



  
     
 
 
    
    
 
   
 
! 
  
:G  *  
 
  
 
    


   
   
+   
 
  
     
  
  ©
  V  

* 44@;-- 

FI @;--
G  *: RD
 D

FI08:7@O:-/F/H87@SFI07J 
 % 
)

£ !   



    
  



   

 
       

G F        
   
 
 

    
   

6 *G  ** 


 :6 * 
;G  **  

    :6 *  


   
     6G06K7G@7<F/-

 
  
        
G F    
 
 ! 
    
         


 
      
   

  
    

        
           
  
      
÷ 9

d    

  
            

!  
 
 

*PF?F
@;--
%
% % 

H F?F 
9 F?F 
)
 F*( 
PF  



    

    
÷   
       
     A
 
  

  
  


 


   

     
% 

PF    
    


  
 
  
     
     



PF    
    
  !
  
  
   



      


H F  


   
 
 
     



GF0:K/< 


 

GF0JM97G@
 

9 F 
 

 

    

 
 
 

 
   



 
 


 
 ! )    
)     
   
  
       
 

  
 


 
   
    
  




 

d   d  


9 ( +   /2  % +  <7> (    
¬0( + $.  0(    ( $  

-<6;-H:/--I/:JG ( KG@9* 


;8@H
G(/</F*(
-(/</F
( 

*  

 GF0:-76=
9 G  **  
1L 
 GF096H<7M=
( NF% 
1L 
=
 9G  *( * 

*(
( 
)
 % 
)

 =
9<  

  )9
A)    

 
   KG@9 
  

     

 
   
      
 

      

  =
9< G (    
     G 

  

  

<
  
 
 

GF0:-76


    

     
  

 
  
      

      




        



GF0:-76
  
      
 @;4 
  
  
 
    

         

 
  
    
    )  ) 
  
         
  

     

 

÷ 
 9 G  *    
 

GF096H<7M 


      
 
 

   

     



 
 

    £ 
  
 




         
       ( NF  
 


GF0N;8H    

 

   

   !  
 PF  
R/-6 
       c


 
    
  

 
   

 
 G  GF0N;8H       
( NF    
 
               
   

    

Anda mungkin juga menyukai