Acerca del uso de nuevos personajes en c.
Las funciones de pantalla de caracteres de Turbo C2.0 incluyen principalmente configuración del tamaño de la ventana de texto, configuración del color de la ventana,
borrado del texto de la ventana y funciones de entrada y salida.
1. Definición de ventana de texto
La ventana de texto definida por Turbo C2.0 por defecto es la pantalla completa, con 80 columnas (o 40 columnas) y 25 líneas de texto
Unidad, cada unidad incluye un carácter y un atributo. El carácter es el carácter del código ASCII. El atributo especifica el color y la intensidad del carácter.
.
Turbo C2.0 puede utilizar la función ventana() para definir un área rectangular en la pantalla como ventana.
Después de definir una ventana, las funciones de entrada y salida de la ventana solo pueden operar dentro de la ventana y no pueden exceder los límites de la ventana.
El formato de llamada de la función window() es el siguiente:
void window(int left, int top, int right, int bottom); El prototipo de esta función está en conio.h (todas las funciones en la ventana de texto en el archivo de encabezado están en conio.h, que no se explicará más adelante). Los parámetros formales (int left, int top) son las coordenadas de la esquina superior izquierda de la ventana,
(int right, int bottom) son las coordenadas de la esquina inferior derecha de la ventana, donde ( izquierda, arriba) y (derecha,
abajo) son coordenadas relativas a toda la pantalla. Turbo C 2.0 especifica que la esquina superior izquierda de la pantalla es
(1, 1) y la esquina inferior derecha es (80, 25). También especifica que cuando la dirección horizontal es el eje X, la dirección es correcta; cuando la dirección vertical es el eje Y, la dirección es hacia abajo. Si las coordenadas en la función ventana () exceden los límites de las coordenadas de la pantalla, entonces la definición del puerto de ventana no tendrá sentido, es decir, la definición no tendrá ningún efecto, pero la compilación y vinculación del programa no causará errores.
Además, una pantalla puede definir varias ventanas, pero la ventana actual solo puede tener una (porque DOS es un único
sistema operativo empresarial cuando necesita usar otra ventana). , puede llamarlo una vez más
en la función window() que define la ventana, y luego la ventana se convertirá en la ventana actual.
Si desea definir una ventana con un tamaño de 30 columnas y 15 filas en la esquina superior izquierda de la pantalla (20, 5), puede escribir la ventana como
ventana (20, 5, 50, 25);
2. Configuración del color de la ventana de texto
La configuración del color de la ventana de texto incluye la configuración del color de fondo y la configuración del color de los caracteres, el uso de funciones y
su llamada.
El formato de llamada es el siguiente:
Establece el color de fondo: void textbackground(int color);
Establece el color del carácter: void textcolor(int color); );
p>
La definición de color se muestra en la Tabla 1.
Tabla 1. Definición de color <
━━━━━━━━━━━━━━━━━━━━━━━━━━━ p>
Símbolo valor constante que significa carácter o fondo
----- ---------- ---------- --
NEGRO 0 Negro Ambos
AZUL 1 Azul Ambos
VERDE 2 Verde Ambos
CIAN 3 Cian Ambos
ROJO 4 Rojo Ambos
MAGENTA 5 Magenta Ambos
MARRÓN 6 Marrón Ambos
GRIS CLARO 7 Gris Pálido Ambos
GRIS OSCURO 8 Gris oscuro solo para personajes
AZUL CLARO 9 Orquídea Pálido solo para personajes
VERDE CLARO 10 Verde Pálido solo para personajes
CIAN CLARO 11 Cian pálido solo para personajes
ROJO CLARO 12 Rojo pálido solo para personajes
LIGHTMAGENTA 13 Pale13 Magenta pálido solo para personajes
Amarillo 14 Amarillo solo para personajes
Blanco 15 Solo se usa para el color blanco de los personajes
PARPADEO 128 Solo se usa para el parpadeo de caracteres
AZUL CLARO 9 Solo se usa para el azul claro de los caracteres
VERDE CLARO 10 Solo Verde claro para los caracteres
Para caracteres
━━━━━━━━━━━━━━━━━━━━━━━━━━━
Las constantes simbólicas en la tabla anterior son equivalentes a los valores numéricos correspondientes y son intercambiables. Por ejemplo, para establecer un fondo azul, puede
usar textbackground(1) o textbackground(BLUE). No hay
diferencia entre los dos, pero este último es más fácil de usar. recuerda, y podrás ver que es azul de un vistazo.
Turbo C también proporciona una función para establecer el carácter y el color de fondo del texto. El formato de llamada es el siguiente:
void textattr(int attr); > donde: El valor de attr representa información codificada en color. El significado de cada bit es el siguiente: Los cuatro bits inferiores del byte cccc establecen el color del carácter (0 a 15), los cuatro a seis bits bbb establecen el color de fondo. (0 a 7), p>
El séptimo bit B establece si el carácter parpadea. Si desea configurar un carácter amarillo con fondo azul, defínalo de la siguiente manera:
textattr(YELLOW+(BLUE<<4)); carácter, defínalo de la siguiente manera:
textattr(128+YELLOW+(BLUE<<4));
Nota:
(1) El fondo solo tiene 8 colores del 0 al 7 ***, por lo que si tomas un número mayor que 7 y menor que 15,
representa el mismo color que menos 7.
(2) Utilice las funciones textbackground() y textcolor() para establecer los colores de fondo y caracteres de la ventana.
Si la ventana no se borra utilizando la función clrscr() , el color no cambiará hasta que se utilice la función
clrscr(), cuando toda la ventana y los caracteres de texto posteriores que se envíen a la ventana cambiarán al nuevo color.
(3) Cuando se utiliza la función textattr(), el color de fondo debe moverse 4 bits hacia la izquierda para que el color de fondo de 3 bits se mueva a la posición
correcta. .
El siguiente programa utiliza funciones como la definición del tamaño de la ventana y la configuración del color para definir 7 ventanas en diferentes posiciones en una pantalla
y utiliza 7 colores de fondo diferentes.
Ejemplo 1:
#include
#include
main() p>
p>
{
int i;
textbackground(0); / /* Establece el color de fondo de la pantalla*/
clrscr(); /* Borrar pantalla de texto*/
for(i=1; i<8;i++)
{
window(1i *5, 5+i , 3i*5, 15+i); /*Definir ventana de texto*/
textbackground(i); /*Definir color de fondo de ventana*/
clrscr(); /*Borrar ventana*/
}
getch();
}
3. Entrada/ función de salida de texto en ventana
I. Función de salida de texto en ventana
Int cprintf(1i*5, 5+i, 3i*5, 15+i ).
int cprintf("
int cputs(char *string
int putch(); int ch);
p>
La función cprintf() genera una cadena formateada o un valor numérico en la ventana. Se usa exactamente igual que la función printf(), excepto que la salida de cprintf() se limita a la ventana, mientras que la salida de printf() es la pantalla completa.
cputs() genera una cadena en la pantalla, que es exactamente igual que puts() excepto que
está limitada por el tamaño de la ventana.
La función putch() envía un carácter a la ventana.
Nota:
(1) Al usar estas funciones, cuando la salida excede el límite derecho de la ventana, automáticamente irá al comienzo de la siguiente
línea. Cuando el contenido de la ventana está lleno pero la salida no ha finalizado, la pantalla de la ventana se desplazará automáticamente hacia arriba línea por línea
hasta que finalice la salida.
2. Función de entrada de texto en la ventana
int getche(void);
Esta función ya se ha mencionado antes. Es necesario explicar que getche( ) obtiene un carácter
del teclado y lo muestra en la pantalla. Si el carácter excede el límite derecho de la ventana, se transferirá automáticamente al punto de inicio del siguiente
<. p>línea.El siguiente programa agrega algunas capacidades de salida de texto al Ejemplo 1.
Ejemplo 2:
#include
#include
int main()
{
int i;
char *c[]={"NEGRO ", "AZUL", "VERDE", "CIAN", "ROJO" ,
"MAGENTA", "BROWN", "LIGHTGRAY"};
textbackground(0); /* Establece el color de fondo de la pantalla*/
clrscr ( ) /* Borrar pantalla de texto*/
for(i=1; i<8; i++)
{
ventana(1i*); 5 , 5+i, 3i*5, 15+i); /* Definir la ventana de texto*/
textbackground(i); /* Definir el color de fondo de la ventana*/
clrscr(); /* Borrar ventana*/
}
getch();
Devuelve 0;
4.
4. Funciones relacionadas con las operaciones de pantalla
void clrscr(void); Borra el contenido de texto de la ventana actual y coloca el cursor en la esquina superior izquierda de la ventana
.
void clrscr(void); Borra el contenido del texto en la ventana actual y coloca el cursor en la esquina superior izquierda de la ventana
(1, 1) .
void clreol(void); Borra todos los caracteres desde la posición del cursor hasta el final de la línea en la ventana actual, y la posición del cursor permanece sin cambios.
void gotoxy(x, y); Esta función se utiliza para colocar el cursor en la posición de la ventana actual. Aquí x, y son las coordenadas de la posición del cursor (en relación con la ventana). Cuando x, y excede el tamaño de la ventana, la función no funcionará
.
int gettext(int xl, int yl, int x2, int y2, void *buffer
int puttext(int x1, int y1, int x2, int y2, void); *buffer);
gettext() es una función que coloca el texto en el área rectangular especificada de la pantalla en el espacio de memoria señalado por el puntero del búfer
. El tamaño de la memoria se calcula mediante la siguiente fórmula:
Bytes utilizados = filas * columnas * 2
Donde:
Filas = y2-y1+1 Columnas = x2- x1+1
La función puttext() copia el texto almacenado en el búfer de memoria mediante la función gettext() a la ubicación especificada en la pantalla
.
int movetext(int x1, int x2, int y2, int x3, int y3
La función movetext() cambia la esquina superior izquierda de la pantalla a (x1, y1), la ventana rectangular de la esquina inferior derecha para (x2, y2)
Copie el texto del puerto a una nueva posición en la esquina superior izquierda de (x3, y3). Las coordenadas de esta función también son relativas a toda la pantalla
.
Nota:
1. Las coordenadas en las funciones gettext() y puttext() son relativas a toda la pantalla, es decir, las coordenadas absolutas de la pantalla
, y no las coordenadas de la ventana.
2. La función movetext() copia en lugar de mover el contenido del área de la ventana. Es decir, después de usar esta función, el contenido del texto del área de ubicación original
. todavía existe.
Ejemplo 3.
include
main()
{
int i
char *f[]={"Cargar F3", "Seleccionar Alt-F3", "Nuevo",
"Guardar F2", "Escribir en", "Directorio ",
"Cambiar directorio", "Os shee ", "Salir Alt-X"};
char buf[9*14*2];
clrscr();
textcolor(AMARILLO);
textbackground(AZUL);
clrscr(); , 2, 24, 11, buf);
ventana(10, 2, 24, 11);
fondo de texto(ROJO);
clrscr();
for(i=0; i<9; i++)
{
gotoxy(1); , i++);
cprintf("%s", f[i]);
}
getch(); movertext(10, 2, 24, 11, 40, 10);
puttext(10, 2, 24, 11, buf
getch();
}
Aquí hay algunas funciones más:
void highvideo(void); configura el monitor para mostrar caracteres con alto brillo.
void lowvideo(void); Configura el monitor para que muestre caracteres con bajo brillo.
void normvideo(void); Restaura la pantalla al estado anterior a la ejecución del programa.
int dondex(void); Estas dos funciones devuelven las coordenadas x, y del cursor en la ventana actual.
int donde(nulo);