首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

大江东去与c语言:解决思路

2012-02-09 
大江东去与c语言:大江东去与c语言:我想在图形模式下输出:大江东去,浪淘尽,千古风流人物。(竖直方向上的)但

大江东去与c语言:
大江东去与c语言:
 我想在图形模式下输出:大江东去,浪淘尽,千古风流人物。(竖直方向上的)
 但是tc好像不支持汉字的输出。可是我见过有的,是“滚滚长江东逝水”
 我写了一个但是输出的是乱码,请高手指点一二。
 多谢了。
/* Note:Your choice is C IDE */
#include "stdio.h" 
#include<graphics.h>
main()
{
  int drive=DETECT,mode;
  initgraph(&drive,&mode,"\\tc");
  setbkcolor(8);
  setcolor(4);
  settextstyle(0,1,2);
  outtextxy(52,55,"大江东去,浪淘尽,千古风流人物");
  getchar();
  closegraph(); 
}
但是tc好像不支持汉字的输出。可是我见过有的,是“滚滚长江东逝水”

[解决办法]
汉字编码可以计算出在汉字库的位置,以前我在dos下实现都是使用uc-dos的字库,例如hzk16就是16点阵字库,自己再查些资料把。
outtextxy要换成自己的自定义的函数
PrintCHNChar(int x,int y, const char * buffer, const size_t bufferLen)
[解决办法]
找一个汉字点阵字库文件,通过公式找到汉字对应的点阵数据,然后在图形模式下显示这些点阵数据就可以了。
该方法在Turbo C下可实现。
你在用公式计算该汉字在字库里位置的时候,需要注意的是在Turbo C下每个汉字都一分为二了,也就是说本来你在字符串里保存了3个汉字,到了Turbo C下就变成了6个了(都是些“古怪”的符号。注意别忘了还有'\0',也就是说总共有7个),你在用公式计算汉字在点阵文件里的位置时要用汉字左半边的ASCII码代入公式。
有一本叫做《c游戏编程从入门到精通》的书里提供了编写该类程序的技术。不过最重要的是你要找到与该书配套的源码,因为书里面没有大型程序的源码以及其他重要资源(如点阵字库文件和特定格式的图片文件)。
该书以及与之配套的源码在网上可以找到。

热点排行