读书人

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

发布时间: 2012-02-09 18:22:27 作者: rapoo

大江东去与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游戏编程从入门到精通》的书里提供了编写该类程序的技术。不过最重要的是你要找到与该书配套的源码,因为书里面没有大型程序的源码以及其他重要资源(如点阵字库文件和特定格式的图片文件)。
该书以及与之配套的源码在网上可以找到。

读书人网 >C语言

热点推荐