¿Cómo generar chino en lenguaje C?
En muchos programas C, los caracteres chinos se utilizan para indicaciones o interacción persona-computadora. Sin embargo, el IDE Turbo C actual no admite chino, entonces, ¿cómo escribir un programa C que? ¿Puede mostrar caracteres chinos?
Los siguientes métodos pueden ayudarle a mostrar caracteres chinos en un entorno occidental. Este método llama a la biblioteca de caracteres chinos para mostrar caracteres chinos. Los estándares nacionales estipulan que la biblioteca de caracteres chinos está dividida en 94 áreas, cada área tiene 94 caracteres chinos (divididos por bits) y cada carácter chino tiene un código de área claro y un número de bit en la biblioteca de caracteres chinos, es decir, el código de área. del carácter chino. Cada carácter chino se almacena en la biblioteca de fuentes en forma de un modelo de carácter de matriz de puntos, generalmente usando una matriz de puntos de 16 × 16 (32 bytes) o una matriz de puntos de 24 × 24 (72 bytes). Cada punto usa un bit binario (). 0 o 1) significa que lo que se muestra en la pantalla es el carácter chino correspondiente.
Dado que en el entorno chino la entrada es el código interno de los caracteres chinos, debemos convertirlo en un código regional, calcular el desplazamiento, encontrar los caracteres chinos correspondientes en la fuente y mostrar su modelo de caracteres. .
El método para convertir el código interno al código de área es el siguiente:
qh=c1-0xa0 wh=c2-0xa0
El código de área es :
qw=qh*0xff wh
Comenzando desde el punto inicial, la posición de este carácter chino en la fuente es:
offset=(94* (qh-1) (wh- 1))*32L
Programa de muestra:
#include 〈graphics.h〉</p>
#define FILA 1 //zoom vertical p>
#define COL 2 //ampliación horizontal
void main()
{
int x, y;
char *s=〃Programa de visualización de caracteres chinos〃;
FILE *fp;
char buffer[32] //Se utiliza el búfer para almacenar un solo carácter chino
registrar m, n, i, j, k
unsigned char qh, wh
unsigned long offset
int gd=DETECT, gm; //inicialización de la pantalla gráfica
initgraph(&gd,gm,〃 〃);
if ((fp=fopen(〃hzk16〃,〃 rb〃))==NULL)
//abre la biblioteca de caracteres chinos, que se puede encontrar en ucdos
{ printf(〃No puedo abra haz16, agréguelo〃);
p>getch( ); closegraph(); y=100; //Configuración de la posición de visualización
while(*s)
{ qh=*(s)-0xa0; //Configuración regional del carácter chino
wh=*(s 1) -0xa0;
Offset=(94*(qh-1) (wh-1))*32L // Calcula el desplazamiento del carácter chino en la fuente p>
fseek(fp, offset, SEEK_SET);
fread(buffer, 32, 1, fp); // Saca el modelo de caracteres de celosía de 32 bytes y colócalo en el buffer (un carácter chino)
for (i=0; i<16; i) //Imprime la matriz de puntos de 32 bytes en la pantalla poco a poco (1: imprimir, 0: no imprimir), mostrar caracteres chinos
for (n= 0;n〈ROW;n+++)
for(j=0;j〈2;j+++)
for(k=0;k〈8;k+++)
for(m=0; m〈COL; m++++)
if ((buffer[i*2+j ]〉〉(7-k)).0x1)!= NULL)
putpixel(x 8*j*COL k*COL m, y i*ROW n, GREEN
s =2; //Dado que la codificación de caracteres chinos ocupa dos bytes, se debe agregar s.
2
x =30;
}
getch(); <
closegraph(); }
El programa anterior se ejecuta correctamente bajo el sistema de compilación Turbo C 2.0 y puede ampliar y mostrar caracteres chinos. Los lectores pueden cambiarlo a una función para mostrar caracteres chinos en su programa.