原帖及討論:http://bbs.bccn.net/thread-129298-1-1.html
/* 以’#’符號來顯示放大顯示ASCII字符(以前的老資料,適用于DOS環(huán)境)
說明:0xF000FA6E這個(gè)地址是每個(gè)(ASCII)字符顯示點(diǎn)陣的首地址,
每個(gè)字符大小為8*8,每個(gè)字符點(diǎn)陣占連續(xù)的8個(gè)字節(jié),每一字節(jié)表示
一行,從上而下,從左而右.
本人 QQ:527274766
C語言群:31545052 和 31544991
參考以下代碼:
*/
#include<stdio.h>
#include<conio.h>
void ShowBigChar(int x,int y,char ch)
{ /* 單個(gè)字符放大 */
int i,j;
char far *position;
unsigned char test;
position=(char far *)0xF000FA6EL+ch*8;/* 獲取ch對應(yīng)的字符點(diǎn)陣的首地址*/
for(i=0;i<8;++i) /* 8行 */
{
gotoxy(x*8+1,y+i); /* 8*8點(diǎn)陣,所以每個(gè)字符占8列 */
test = 0x80; /* 對應(yīng)2進(jìn)制為1000,0000 */
for(j=0;j<8;++j) /* 8列 */
{
if(*position & test) putchar(‘#’);/* 按位與,若不為0,即顯示# */
else putchar(‘ ‘);/* 否則不顯示 */
test>>=1; /* 左移一位,依次變成0100,0000 0010,0000 0001,0000 … */
}
++position; /* 移到下一字節(jié),既點(diǎn)陣的第2行*/
}
}
void ShowBigString(char str[])
{ /* 字符串放大 */
int i;
if(strlen(str)>30)
{ /* 因?yàn)槠聊淮笮?0*25,所以每行最多顯示
80/8=10個(gè)字符,最多顯示25/8=3行 */
printf(“Too much word! ( <30 )”);
return;
}
for(i=0;str[i]!=’