在C程序中显示汉字

屏幕程序设计-利用c语言的库函数显示汉字 C语言窗口字符串输出函数cprintf(),cputs()等,在编译时缺省编译成按直接视频缓冲区传送方式显示字符串,因而不能显示汉字(直接向视频缓冲区写汉字与写西文的格式不同)。C语言的输出函数(如Printf(),putchar())采用int或unsigned char类型表达字符,采用中断int 10H实现字符显示。clrscr()函数一旦调用,即将屏幕显示方式置为文本方式,因而调用clrscr()函数后,printf(),cprintf(),cputs()函数均不能显示汉字 阅读详情


 


    在许多C程序设计中,要用到汉字进行提示或人机交互,而现行的Turbo C集成开发环境不是汉化的,如何编制能显示汉字的C程序呢?下面的方法可以帮你在西文环境下显示汉字。
    这种方法是调用中文汉字库进行汉字显示。国家标准规定:汉字库分94个区,每个区有94个汉字(以位作区别),每个汉字在汉字库中有确定的区和位编号,这就是汉字的区位码。每个汉字在库中是以点阵字模形式存储的,一般采用16×16点阵(32字节)、24×24点阵(72字节),每个点用一个二进制位(0或1)表示,对应在屏幕上显示出来,就是相应的汉字。   
    由于在中文环境下,输入的是汉字的内码,我们必须将之转换成区位码,算出偏移量,从字库中找到对应的汉字,将其字模显示即可。   
    内码转换成区位码方法如下:   
     qh=c1-0xa0 wh=c2-0xa0      
    其区位码就是:     
    qw=qh*0xff+wh   
    该汉字在字库中离起点的位置是:     
     offset=(94*(qh-1)+(wh-1))*32L   
    程序例:   
    #include 〈graphics.h〉   
    #include 〈stdio.h〉   
    #include 〈fcntl.h〉   
    #include 〈io.h〉   
    #include 〈stdlib.h〉   
    #include 〈conio.h〉   
    #define ROW 1       //纵坐标放大倍数   
    #define COL 2      //横坐标放大倍数   
    void main()   
    {   
     int x,y;   
     char *s=″汉字显示程序″;   
     FILE *fp;   
     char buffer[32];   //buffer用来存储一个汉字   
     register m,n,i,j,k;   
     unsigned char qh,wh;   
    unsigned long offset;   
     int gd=DETECT,gm;   //图形屏幕初始化   
     initgraph(&gd,&gm,″ ″);   
    if ((fp=fopen(″hzk16″,″rb″))==NULL)     
    //打开汉字库,该字库可以在ucdos中找到     
     { printf(″Can't open haz16,Please add it″);  
     getch(); closegraph(); exit(0);   
       }   
     x=20; y=100; //显示位置设置   
     while(*s)   
       { qh=*(s)-0xa0; //汉字区位码    
      wh=*(s+1)-0xa0;    
      offset=(94*(qh-1)+(wh-1))*32L;  //计算该汉字在字库中偏移量    
      fseek(fp,offset,SEEK_SET);    
      fread(buffer,32,1,fp); //取出汉字32字节的点阵字模存入buffer中(一个汉字)    
      for (i=0;i〈16;i++)  //将32位字节的点阵按位在屏幕上打印出来(1:打印,0:不打印),显示汉字  
     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; //因为一个汉字内码占用两个字节,所以s必须加2    
      x+=30;   
     }   
     getch();   
     closegraph();  
     }   
    上述程序在Turbo C 2.0编译系统下运行成功,它可以将汉字放大显示,读者可以将它改成函数用在您的程序中显示汉字

单片机液晶显示c语言程序,单片机驱动19264液晶显示汉字c程序 19264液晶是一种比12864大一点点的单色液晶,这里我给大家介绍一下用stc系列单片机驱动他显示汉字的原理效果图由于网页空间篇幅有限本文只列出了部分代码,完整版本请从http://www.51hei.com/f/19264.rar处下载#include#include#define uchar unsigned char#define uint unsigned intuint ee;uc... 阅读详情

相关推荐

液晶12864汉字显示程序显示顺序正常的C语言程序

液晶12864显示汉字程序,调试发现两个汉字行中间隔一行,手动调整为四行显示

坚韧与专注 4871

显示汉字

在C程序显示汉字<br />首先机器可以识别的是机内码;然后我们需要将其转化为区位码才可以得到点阵的地址;得到地址取到点阵就可以显示了。<br /><br /><br />这种方法是调用中文汉字库进行汉字显示。<br />国家标准规定:汉字库分94个区,每个区有94个汉字(以位作区别),每个汉字汉字库中有确定的区和位编号,这就是汉字的区位码。每个汉字在库中是以点阵字模形式存储的,一般采用16×16点阵(32字节)、24×24点阵(72字节),每个点用一个二进制位(0或1)表示,对应在屏幕上显示出来,就是

天道酬勤 2493

点阵程序中的主要程序,用C语言编写的。

#include <reg52.h> unsigned char table[]={ 0x00,0x7c,0x04,0x04,0x08,0x08,0x08,0x08}; unsigned char num[]={ 0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; void delay(); unsigned char i; main() { while(1) { for(i=0;i<8;i++) { P3=num[i]; P2=table[i]; delay(); } } } void delay() { unsigned int i; i=20000; while(i--); }

在C语言中显示汉字

    在许多C程序设计中,要用到汉字进行提示或人机交互,而现行的Turbo C集成开发环境不是汉化的,如何编制能显示汉字的C程序呢?   下面的方法可以帮你在西文环境下显示汉字。这种方法是调用中文汉字库进行汉字显示。国家标准规定:汉字库分94个区,每个区有94个汉字(以位作区别),每个汉字汉字库中有确定的区和位编号,这就是汉字的区位码。每个汉字在库中是以点阵字模形式存储的,一般采用16×1

静思阁 4375

西文环境下显示汉字

   这种方法是调用中文汉字库进行汉字显示。国家标准规定:汉字库分94个区,每个区有94个汉字(以位作区别),每个汉字汉字库中有确定的区和位编号,这就是汉字的区位码。每个汉字在库中是以点阵字模形式存储的,一般采用16×16点阵(32字节)、24×24点阵(72字节),每个点用一个二进制位(0或1)表示,对应在屏幕上显示出来,就是相应的汉字。  由于在中文环境下,输入的是汉字的内码,我们必须将之转

***Blog For US*** 1233

转载:在C程序显示汉字

在C程序显示汉字在许多C程序设计中,要用到汉字进行提示或人机交互,而现行的Turbo C集成开发环境不是汉化的,如何编制能显示汉字的C程序呢?   下面的方法可以帮你在西文环境下显示汉字。这种方法是调用中文汉字库进行汉字显示。国家标准规定:汉字库分94个区,每个区有94个汉字(以位作区别),每个汉字汉字库中有确定的区和位编号,这就是汉字的区位码。每个汉字在库中是以点阵字模形式存储的,一般采

bbdg的专栏 1612

怎样用C语言编写出能够显示汉字程序

 1、中文字符串可以使用printf()、puts()等函数直接输出。 1 2 3 4 5 6 7 8 9 #include  #include  int main() {     const char str[] = "这里全是中文";     printf("\n输出字符数:%d\n", printf(str));     

weixin_40154400的博客 1万+

如何在C程序显示12或16点的点阵汉字

在c程序显示汉字 郭胜德   在许多c程序设计中,要用到汉字进行提示或人机交互,而现行的turbo c集成开发环境不是汉化的,如何编制能显示汉字的c程序呢?  下面的方法可以帮你在西文环境下显示汉字。这种方法是调用中文汉字库进行汉字显示。国家标准规定:汉字库分94个区,每个区有94个汉字(以位作区别),每个汉字汉字库中有确定的区和位编号,这就是汉字的区位码。每个汉字在库中是以点阵字

Liang Tang's 专栏 5713

在C程序显示汉字

         网上流行的是这种版本,可是这是C吗?在TC和WIN-TC下编译都是错误的,注释也有问题,C里用 // 做注释的吗?   晕了,这个到底什么版本啊.在许多C程序设计中,要用到汉字进行提示或人机交互,而现行的Turbo C集成开发环境不是汉化的,如何编制能显示汉字的C程序呢?    下面的方法可以帮你在西文环境下显示汉字。这种方法是调用中文汉字库进行汉字显示。国家标准

y_sb的专栏 907

STM32F103 读取字库显示汉字C程序

STM32F103 读取字库显示汉字C程序 【下载地址】STM32F103读取字库显示汉字C程序 这是一个基于STM32F103系列单片机的开源项目,提供了读取字库并显示汉字的完整C程序程序已包含全部编译内容,用户无需额外配置即可直接使用。支持STM32F103系列单片机,能够轻松读取字库文件并实现汉字显示。使用简单,...

gitblog_06761的博客 409

c语言如何扩大字体,C语言图形汉字及放大显示程序

include 〈graphics.h〉#include 〈stdio.h〉#include 〈fcntl.h〉#include 〈io.h〉#include 〈stdlib.h〉#include 〈conio.h〉#define ROW 1       //纵坐标放大倍数#define COL 2      //横坐标放大倍数void main(){int x,y;char *s=″汉字显示程...

weixin_39601056的博客 3528

C语言16x16点阵显示汉字程序,16X16点阵汉字显示程序

《16X16点阵汉字显示程序》由会员分享,可在线阅读,更多相关《16X16点阵汉字显示程序(5页珍藏版)》请在人人文库网上搜索。1、include #define uchar unsigned char uchar i,k=15; xsi=P20;sbit xrck=P21; sbit sbit xsck=P22; sbit ysi=P23; yrck=P24; sbit ysck=P25;sbi...

weixin_42512842的博客 5042

STM32F103读取字库显示汉字C程序:单片机汉字显示解决方案

STM32F103读取字库显示汉字C程序:单片机汉字显示解决方案 【下载地址】STM32F103读取字库显示汉字C程序 这是一个基于STM32F103系列单片机的开源项目,提供了读取字库并显示汉字的完整C程序程序已包含全部编译内容,用户无需额外配置即可直接使用。支持STM32F103系列单片机,能够轻松读取字库文件并实...

gitblog_06749的博客 378

单片机实现汉字显示的c语言程序,单片机液晶汉字显示c语言程序.doc

单片机液晶汉字显示c语言程序/*液晶屏分为4行*12列汉字,全部使用模拟接口方式。/* TGLCMLIMIT64A接口程序(模拟方式);**********************单片机液晶汉字显示c语言程序*****************************************************;连线图:;*LCM---89C52* *LCM---89C52* *LCM-----...

weixin_39945915的博客 417

STM32F103 TFT彩屏显示汉字字符C程序

STM32F103 TFT彩屏显示汉字字符C程序 去发现同类优质开源项目:https://gitcode.com/ 简介 本仓库提供了一份STM32F103 TFT彩屏显示汉字字符的C程序,适用于无字库的取摸方式。程序经过编译,可直接在您的开发环境中使用。 特性 支持STM32F103系列MCU 取摸显示汉字字符,无需字库支持 程序包含编译后的全部内容 使用说明 将程序文件导入您的开发环境。...

gitblog_06781的博客 346

汉字点阵c语言程序,用c51单片机控制1616点阵显示汉字源代码

#include #define uchar unsigned char#define uint unsigned int#define out0 P0#define out2 P2#define out1 P1void delay(uint j){uchar i =250;for( ; j>0; j--){while(--i);i =100;}}uchar code string[] ={...

weixin_39888180的博客 2686

STM32F103TFT彩屏显示汉字字符C程序:让您的开发更简单

STM32F103TFT彩屏显示汉字字符C程序:让您的开发更简单 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 在现代嵌入式系统开发中,用户界面(UI)的友好性越来越受到重视。STM32F103TFT彩屏显示汉字字符C程序,正是为了满足这类需求而开发的开源项目。它提供了一套适用于STM32F103系列MCU的TFT彩屏显示汉字字符的解决方案,特别适用于没有字库支持的取...

gitblog_06747的博客 356
下一篇: 用C语言实现参数个数可变的函数
cmos
博客等级 码龄25年 0粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值