/************************************************
创建日期:2004.8.28
版本:0.1
作者:CenturyMagus
功能作用:dos下汉字的输出
*************************************************/
#include
#include
/*字型库*/
char CN_LIST[9][32]=
{
? { /* 天 */
??? 0x00,0x00,0x3F,0xFC,0x01,0x00,0x01,0x00,
??? 0x01,0x00,0x01,0x00,0x7F,0xFE,0x01,0x00,
??? 0x01,0x00,0x02,0x80,0x02,0x40,0x04,0x20,
??? 0x08,0x18,0x10,0x0E,0x20,0x04,0x40,0x00,
? },
? {? /* 津 */
??? 0x40,0x40,0x20,0x40,0x27,0xF8,0x00,0x48,
??? 0x8F,0xFE,0x50,0x48,0x57,0xF8,0x10,0x40,
??? 0x20,0x40,0xE7,0xF8,0x20,0x40,0x2F,0xFE,
??? 0x20,0x40,0x20,0x40,0x20,0x40,0x20,0x40,
? },
? { /* 工 */
??? 0x00,0x00,0x3F,0xFC,0x01,0x00,0x01,0x00,
??? 0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,
??? 0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,
??? 0x01,0x00,0xFF,0xFE,0x00,0x00,0x00,0x00,
? },
? {/* 业 */
??? 0x04,0x40,0x04,0x40,0x04,0x40,0x04,0x44,
??? 0x44,0x46,0x24,0x4C,0x24,0x48,0x14,0x50,
??? 0x1C,0x50,0x14,0x60,0x04,0x40,0x04,0x40,
??? 0x04,0x44,0xFF,0xFE,0x00,0x00,0x00,0x00,
? },
? {/* 大 */
??? 0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,
??? 0x01,0x00,0xFF,0xFE,0x01,0x00,0x02,0x80,
??? 0x02,0x80,0x02,0x40,0x04,0x40,0x04,0x20,
??? 0x08,0x10,0x10,0x18,0x20,0x0E,0x40,0x04,
? },
? {/* 学 */
??? 0x01,0x08,0x10,0x8C,0x0C,0xC8,0x08,0x90,
??? 0x7F,0xFE,0x40,0x04,0x8F,0xE8,0x00,0x40,
??? 0x00,0x80,0x7F,0xFE,0x00,0x80,0x00,0x80,
??? 0x00,0x80,0x00,0x80,0x02,0x80,0x01,0x00,
? },
? {/* 空格符 */
??? 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
??? 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
??? 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
??? 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
? },
? {/* 艾 */
??? 0x04,0x40,0x04,0x40,0xFF,0xFE,0x04,0x40,
??? 0x04,0x40,0x08,0x20,0x08,0x30,0x04,0x20,
??? 0x04,0x40,0x02,0x80,0x01,0x00,0x02,0x80,
??? 0x04,0x40,0x08,0x30,0x30,0x0E,0xC0,0x40,
? },
? {/* 浩 */
??? 0x20,0x40,0x10,0x40,0x12,0x40,0x03,0xFC,
??? 0x8A,0x40,0x4c,0x40,0x50,0x40,0x17,0xFE,
??? 0x10,0x00,0x20,0x00,0xE3,0xFC,0x22,0x04,
??? 0x22,0x04,0x22,0x04,0x23,0xFC,0x22,0x04,
? },
};
/*---------------------------------------------------------*/
/*显示中文单字的子程序*/
ShowFontCN16(int x,int y,int number)? /*y表示纵坐标,number表示字型编号*/
{
?int i,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15;
?char char_a;
? /* 记录X轴的坐标*/
? x1 = x+1;
? x2 = x+2;
? x3 = x+3;
? x4 = x+4;
? x5 = x+5;
? x6 = x+6;
? x7 = x+7;
? x8 = x+8;
? x9 = x+9;
? x10 = x+10;
? x11 = x+11;
? x12 = x+12;
? x13 = x+13;
? x14 = x+14;
? x15 = x+15;
? for( i=0; i
? {
??? char_a = CN_LIST[number][i];
??? /*char_a和0x08,0x40,0x20,0x10进行与运算,以得到哪一个点应该有点*/
??? if ( char_a? & 0x80 ) putpixel(x? ,y,15);
??? if ( char_a? & 0x40 ) putpixel(x1 ,y,15);
??? if ( char_a? & 0x20 ) putpixel(x2 ,y,15);
??? if ( char_a? & 0x10 ) putpixel(x3 ,y,15);
??? if ( char_a? & 0x08 ) putpixel(x4 ,y,15);
??? if ( char_a? & 0x04 ) putpixel(x5 ,y,15);
??? if ( char_a? & 0x02 ) putpixel(x6 ,y,15);
??? if ( char_a? & 0x01 ) putpixel(x7 ,y,15);
??? char_a = CN_LIST[number][i+1];
??? if ( char_a? & 0x80 ) putpixel(x8 ,y,15);
??? if ( char_a? & 0x40 ) putpixel(x9 ,y,15);
??? if ( char_a? & 0x20 ) putpixel(x10,y,15);
??? if ( char_a? & 0x10 ) putpixel(x11,y,15);
??? if ( char_a? & 0x08 ) putpixel(x12,y,15);
??? if ( char_a? & 0x04 ) putpixel(x13,y,15);
??? if ( char_a? & 0x02 ) putpixel(x14,y,15);
??? if ( char_a? & 0x01 ) putpixel(x15,y,15);
??? y++;
? }
}
/*---------------------------------------------------------*/
main()
{
? int number;?? /*字型的编号*/
? int graphdriver;
? int graphmode;
? int i;
? while(1)
? {
??? graphdriver = DETECT;
??? initgraph(&graphdriver,&graphmode,"");
??? for(i=0;i
????? {
??????? ShowFontCN16((i+1)*16,5,i);
????? }
??? printf("\n\nPlease input the number of the Font(0--7):\n");
??? scanf("%d",&number);
??? ShowFontCN16(0,100,number);?? /*输出指定的字符*/
??? getch();
??? closegraph();
? }
}