教你如何放大显示ASCII字符(文本模式)

时间:2010-05-06 12:01:30  来源:第二电脑网  作者:第二电脑网

  第二电脑网导读:>本人 QQ:527274766  C语言群:31545052 和 31544991参考以下代码:*/#include<stdio.h>#include<conio.h>void ShowBigChar(int x,int y,char ch){  /* 单个字符放大 */  int i,j;  char far *position;  unsigned char test; position=(char far *)0xF000FA6EL+ch*8;/* 获取ch对应的字符点阵的首地址*/...
  正文:

/* 以'#'符号来显示放大显示ASCII字符(以前的老资料,适用于DOS环境)
  说明:0xF000FA6E这个地址是每个(ASCII)字符显示点阵的首地址,
  每个字符大小为8*8,每个字符点阵占连续的8个字节,每一字节表示
  一行,从上而下,从左而右.

本人 QQ:527274766
  C语言群:31545052 和 31544991

参考以下代码
*/

#include<stdio.h>
#include<conio.h>

void ShowBigChar(int x,int y,char ch)
{  /* 单个字符放大 */
  int i,j;
  char far *position;
  unsigned char test;

 position=(char far *)0xF000FA6EL+ch*8;/* 获取ch对应的字符点阵的首地址*/
  for(i=0;i<8;++i)    /* 8行 */
  { 
    gotoxy(x*8+1,y+i); /* 8*8点阵,所以每个字符占8列 */
    test = 0x80;    /* 对应2进制为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;     /* 移到下一字节,既点阵的第2行*/
  }
}

void ShowBigString(char str[])
{  /* 字符串放大 */
  int i;

 if(strlen(str)>30)
  {  /* 因为屏幕大小为80*25,所以每行最多显示
      80/8=10个字符,最多显示25/8=3行 */
    printf("Too much word! ( <30 )");
    return;
  }
  for(i=0;str[i]!='';++i) /* 逐个字符显示 */
    ShowBigChar(i%10,i/10*8+1,str[i]); /* i/10*8换行*/
}

int main()
{
  char s[] = "xql0501  QQ:    527274766";/* 要放大显示的字符串 */

 clrscr();     /* 清屏 */
  ShowBigString(s); /* 放大显示 */
  getch();
  return 0;
}


教你如何放大显示ASCII字符(文本模式)》由第二电脑网原创提供,转载请注明:http://www.002pc.com/master/College/Language/VC/2010-05-06/13890.html


关键字:

关于《教你如何放大显示ASCII字符(文本模式)》文章的评论

站内搜索: 高级搜索

热门搜索: Windows style 系统 tr IP QQ CPU 安装 function 注册 if td