该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

N久以有写的,图形模式下显示中文的程序,需要ucdos下ASC16,HZK16两个字库文件的支持。

里面的 printdot 函数为自己写的打点函数,非C标准的,用C标准函数代替一下。

参数:transparency 是否有背景色

printword(int x,int y,char *string,unsigned char color,unsigned char bgcolor,int transparency)

{

FILE *chinesestream,*englishstream;

int charpoint=0;

unsigned char mask=1;

int i,j,k;

unsigned char bit[32];

long fpos;

unsigned char c;

mask=mask<<7;

/*读入中文字库*/

if((chinesestream=fopen("HZK16","rb"))==NULL)

{

printf("Open hzk16 error!\n");

exit(0);

}

/*读入英文字库*/

if((englishstream=fopen("ASC16","rb"))==NULL)

{

printf("Open asc16 error!\n");

exit(0);

}

while(string[charpoint]!='\0')

{

c=string[charpoint];

if(c<128) /*要显示的字为英文*/

{

fpos=16L*string[charpoint];

fseek(englishstream, fpos, SEEK_SET);

fread(bit,16,1,englishstream);

for(i=0;i<16;i++)

{

for(j=0;j<8;j++)

{

if(bit[i]&mask)

printdot(x+j+charpoint*8,y+i,color);

else

if(transparency) printdot(x+j+charpoint*8,y+i,bgcolor);

bit[i]=bit[i]<<1;

}

}

charpoint++;

}

else /*要显示的字为中文*/

{

fpos=32L*(((unsigned char)string[charpoint]-161)*94+((unsigned char)string[charpoint+1]-161));

fseek(chinesestream, fpos, SEEK_SET);

fread(bit,32,1,chinesestream);

for(i=0;i<32;i=i+2)

{

for(k=0;k<2;k++)

for(j=0;j<8;j++)

{

if(bit[i+k]&mask)

printdot(x+j+charpoint*8+k*8,y+i/2,color);

else

if(transparency) printdot(x+j+charpoint*8+k*8,y+i/2,bgcolor);

bit[i+k]=bit[i+k]<<1;

}

}

charpoint++;

charpoint++;

}

}

}

c语言编程中怎么打汉字,c语言编程中,怎么打汉字啊??我是新手啊~~相关推荐

  1. IDE之VS:利用 Visual Studio中的IDE配置python语言进行编程

    IDE之VS:利用 Visual Studio中的IDE配置python语言进行编程 目录 第一步,先安装python环境 第二步,加载本地已有的python 第一步,先安装python环境

  2. IDE之VS:利用 Visual Studio中的IDE配置C++语言进行编程

    IDE之VS:利用 Visual Studio中的IDE配置C++语言进行编程 目录 C++编译器之VS2015 1.新建项目,VisualC++,空项目,确定 2.右键项目文件夹,添加,新建 3.添 ...

  3. .net调用c++方法时如何释放c++中分配的内存_C/C++编程笔记:C语言编程知识要点总结!大一C语言知识点(全)...

    一.C语言程序的构成 与C++.Java相比,C语言其实很简单,但却非常重要.因为它是C++.Java的基础.不把C语言基础打扎实,很难成为程序员高手. 1.C语言的结构 先通过一个简单的例子,把C语 ...

  4. C语言编程>第二十三周 ③ 下列给定程序中,函数fun的功能是:利用插入排序法对字符串中的字符按从小到大的顺序进行排序。插入法的基本算法是:先对字符串中的头两个元素进行排序;然后把第三字符插入

    例题:下列给定程序中,函数fun的功能是:利用插入排序法对字符串中的字符按从小到大的顺序进行排序.插入法的基本算法是:先对字符串中的头两个元素进行排序:然后把第三字符插入到前两个字符中,插入后前三个字 ...

  5. C语言编程>第二十周 ② 下列给定程序中,函数fun的功能是:求出数组中最大数和次最大数,并把最大数和b[0]中的数对调、次最大数和b[1]中的数对调。

    例题:下列给定程序中,函数fun的功能是:求出数组中最大数和次最大数,并把最大数和b[0]中的数对调.次最大数和b[1]中的数对调. 注意:不要改动main函数,不能增行或删行,也不能更改程序的结构. ...

  6. 乐高中的第一个C语言编程,Robotc for EV3 配置及第一个小实例

    本帖最后由 jiangzian 于 2018-9-21 10:12 编辑 下载安装好之后,您需要遵循几个步骤才能制作一个新的,开箱即用的EV3'ROBOTC-Ready'. 一.软件界面 ROBOTC ...

  7. C语言编程>第二十五周 ① 给定程序中,函数fun的功能是:在形参s所指字符串中的每个非数字字符之后插入一个“*”号。

    例题:给定程序中,函数fun的功能是:在形参s所指字符串中的每个非数字字符之后插入一个"*"号. 例如,形参s所指的字符串为:albc45sdtg56f,则执行结果为:a*1b*c ...

  8. 科学计算机怎么编程玩,如何通过可编程科学计算器在另一个设备中运行本机MFP语言编写的...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 MFP语言的一个重要功能就是通过call ... endcall语句实现对并行计算的支持.MFP语言实现多线互不干扰并行计算的基本原理是采用沙盒机制.每一 ...

  9. C语言编程>第十八周 ⑧ 给定程序中,函数fun的功能是:将形参指针所指结构体数组中的三个元素按num成员进行升序排列。

    例题:给定程序中,函数fun的功能是:将形参指针所指结构体数组中的三个元素按num成员进行升序排列. 注意:请勿改动主函数main与其他函数中的任何内容,仅在横线上填写所需的若干表达式或语句. 代码如 ...

  10. plcst语言编程教程_PLC ST语言编程之我的心得-专业自动化论坛-中国工控网论坛...

    以前编程都是习惯用梯形图,每次编运算程序,都得写很多条运算程序.调试且不说,就光重复使用就得复制好几遍,还要一遍一遍的改寄存器地址,很是麻烦.一次偶然的机会,我用到了一款PLC可以使用ST 语言编程的 ...

最新文章

  1. hdoj 1025 Constructing Roads In JGShining's Kingdom(最长上升子序列+二分)
  2. hdu4847:Wow! Such Doge!(字符串匹配)
  3. linux下配置jdk+tomcat
  4. 【Python基础】python使用python-docx操作word
  5. 4.MyBatis全局配置文件SqlMapConfig.xml
  6. 解决IntelliJ IDEA下Maven报错Unknown lifecycle phase “.test.skip=true“. You must specify a valid lifecycle
  7. 容器created状态_docker容器状态的转换实现
  8. saltstack中grains简介
  9. 设计模式笔记8: 观察者模式
  10. java怎么计算等式_谁能解释计算这个等式的步骤? Java的
  11. Java孩子父母类_父母和子女复选框
  12. Celo计划推出一种与欧元挂钩的新稳定币
  13. 利用varnish构建httpd缓存服务器
  14. Q73:蒙特•卡罗积分(Monte Carlo Integration)
  15. ssl自签名证书生成脚本
  16. idea启动SpringBoot项目自动停止
  17. keil的终极配色方案(提供配置文件)
  18. 当面试官说“你还有什么问题想问的”,你该如何回答?
  19. 等保2.0中的工业控制系统(ICS)指的是什么
  20. AK acm/oj.Print a Chessboard

热门文章

  1. php一点按钮就下载功能源码,php实现强制文件下载方法的源码参考
  2. redis 存储数据不设置过期时间 会自动过期吗_Redis-数据淘汰策略持久化方式(RDB/AOF)Redis与Memcached区别...
  3. 如何切换 SVN 用户名
  4. Oracle 查看表空间、数据文件的大小及使用情况
  5. vim normal 模式下L键
  6. 视频开发(即时通讯平台)
  7. 初学Linux之程序安装
  8. Atitit.swift 的新特性 以及与java的对比 改进方向attilax 总结
  9. 使用递归方法遍历TreeView的节点如配置则勾选
  10. Android开源项目分包方式学习(eoe、oschina、github)