怎么在WIN-TC上打中文?

怎么在WIN-TC上打中文?就是用那什么中文DOS环境运行... 怎么在WIN-TC上打中文?就是用那什么中文DOS环境运行 展开
 我来答
匿名用户
2013-12-21
展开全部
用任何一种32位或者64位的C/C++的编译器,就可以解决问题;
在16位的TC下,无法实现真实的宽字符输出; 如果你非要在TC下输出中文,可用这个方法: 先去下载一个hzk16放在C盘下,然后用我的方法就可以显示汉字了。
#include "stdio.h"
#include "graphics.h"
#include "stdlib.h"

FILE *fp;
FILE *fp;

void main()
{
int gd=VGA,gm=VGAHI;

int x,y,i;

initgraph(&gd,&gm,"");

if((fp=fopen("C:\\hzk16","rb"))==NULL)/*打开字体文件*/
{
printf("Can't open hzk16,Please add it");

getch();
closegraph();
exit(0);
}

/*显示汉字和英文*/
y=100;
txtopt(100,y,1,1,"按下密码加回车你会知道一个大秘密",5);
getch();
fclose(fp);
}

int txtopt(int x,int y,int z,int tmp,char *hz,int clr)
{
char *p;/*临时指针,用于计算输入的字符串长度,和以下3个变量一起用于计算横坐标偏移量*/

int xoffset=0;/*横坐标偏移量计算结果*/

int oldx;/*因x的值在画点时会有改变,所以这里存放原始的x的值*/

int ROW=1,COL=1;

char buffer[32];

int m,n,i,j,k;

unsigned char qh,wh;

unsigned long offset;

/*计算x偏移量*/
p=hz;
oldx=x;
while(p[xoffset++]!='\0');

if(tmp==0)/*显示英文半角字符*/
{
setcolor(clr);
outtextxy(x,y,hz);
return oldx+(xoffset-1)*8;/*返回紧接该字符串末尾的横左标*/
}

while(*hz)/*显示汉字*/
{
qh=*(hz)-0xa0;

wh=*(hz+1)-0xa0;

offset=(94*(qh-1)+(wh-1))*32L;

fseek(fp,offset,SEEK_SET);

fread(buffer,32,1,fp);

for (i=0;i<16;i++)
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,clr);

hz+=2;

x+=(z*16);

}

return oldx+(xoffset-1)*8;/*返回紧接该字符串末尾的横左标*/
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
AiPPT
2024-09-19 广告
随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表类型包括柱状图... 点击进入详情页
本回答由AiPPT提供
匿名用户
2013-12-21
展开全部
ucdos中文环境就可以。貌似还有其他一些中文dos环境,但是很久远,记不住名称了。呵呵。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式