注册 登录
编程论坛 C图形专区

请教书上的一个显示汉字的程序为什么不成功。

tvkl 发布于 2007-04-13 08:21, 851 次点击

#include<dos.h>
#include<stdio.h>
#include<conio.h>
void cls(void);
int main()
{
cls();
directvideo=0;
textattr(0x1e);
printf("计算机是我们的朋友\n");
cputs("计算机是我们的朋友\n");
getch();
}
void cls(void)
{
union REGS regs;
regs.h.ah=6;
regs.h.al=0;
regs.h.ch=0;
regs.h.cl=0;
regs.h.dh=24;
regs.h.dl=79;
regs.h.bh=7;
int86(0x10,&regs,&regs);

}

结果显示出来为乱码。
书上一段话也不懂。请教一下。
中文DOS在开发中对int10H功能做了很好的保留与扩充,因此,只要在图形状态下,汉字c语言程序可以正常运行。有以下几种方法来实现:
1。在中文环境下利用汉化文字编辑器编辑带汉字的C语言程序。
2。在西文环境下编译C程序,可形成可执行文件。
3。在中文环境下运行可执行程序。
我用文本编译器编译再TC2.0编译成可执行文件。Dos下执行。依然是乱码。

还有一个问题是:不通过编译器。怎么样在Dos下用命令编译、链接C程序。

谢谢各位赏脸给我一个答案。不胜感激!

2 回复
#2
一笔苍穹2007-04-13 09:18
我记得要在中文环境下显示汉字可以在程序中直接用以下形式实现:
main()
{
printf("你好\n");
puts("世界");
getch();
}
编译后直接运行显示乱码,但加载了中文环境如CCDOS后就能看相应的汉字。你是不是没加载中文环境啊?
另,不通过编译器,你指的是不用编译器的IDE环境吧?如果你用的是TC的话,可以用TCC在命令行下编译你的程序,用法你直接执行TCC就能看到。
#3
tvkl2007-04-13 10:35

嗯!
谢谢指点。问题解决了。

呵呵tcc用不习惯!

1