中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: [求助]C语言&&汉字 上一主题 | 下一主题
qinqong
高级用户




积分 599
发帖 148
注册 2003-10-30
状态 离线
『楼 主』:  [求助]C语言&&汉字

我想编一个程序,用C语言实现,其中要经常用到汉字的输入输出。请问怎样实现。在C语言下我从没用过汉字。

2004-6-3 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bush
银牌会员




积分 2165
发帖 730
注册 2004-4-21
状态 离线
『第 2 楼』:  

这好像不是C的问题吧? 只要系统支持汉字就行,C只是把一个汉字看作成两个ASCII处理罢了

2004-6-4 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Loff
中级用户




积分 286
发帖 59
注册 2003-4-8
状态 离线
『第 3 楼』:  

这个……不好回答,如果你的程序是win32程序,应该不存在“汉字”的问题。如果是一般dos程序,需要将程序设置为图形模式,并要汉字字库的支持,由你的程序来“画”出汉字;而如果是类似ucdos之类的中文dos系统(实际上已经被设为图形模式了),和windows基本一样。

2004-6-4 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
qinqong
高级用户




积分 599
发帖 148
注册 2003-10-30
状态 离线
『第 4 楼』:  

感谢楼上的两位。
我把我的需要再说一下,我用in=bioskey(0)输入数据,再强制转换成字符型,结果在dos下加载了汉字之后输入的东西输出后不是我想要的,比如我输入“想要”输出可能是“花朵”也可能是乱码。现在我想知道用什么方法能把输入的东西正确的输出来(汉字是不是用字符型保存的),不论在dos下还是在windows下,都能正确的输入汉字和输出汉字。希望大家多帮忙!

2004-6-4 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
qinqong
高级用户




积分 599
发帖 148
注册 2003-10-30
状态 离线
『第 5 楼』:  

渴望回帖

2004-6-12 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bush
银牌会员




积分 2165
发帖 730
注册 2004-4-21
状态 离线
『第 6 楼』:  

可否看一下你的程序代码?

2004-6-14 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
qb45
高级用户




积分 677
发帖 194
注册 2003-9-13
状态 离线
『第 7 楼』:  

用QBASIC就简单了!



我(QB45)的照片与简历
http://www.programfan.com/club/showbbs.asp?id=197280
2004-6-15 00:00
查看资料  发送邮件  发短消息 网志  OICQ (406930019)  编辑帖子  回复  引用回复
挑战者
初级用户




积分 126
发帖 7
注册 2004-5-9
状态 离线
『第 8 楼』:  

我现在也是在被这个为难了,实在不知道怎么搞呀

2004-6-15 00:00
查看资料  发送邮件  发短消息 网志  OICQ (273830083)  编辑帖子  回复  引用回复
zk88
初级用户




积分 130
发帖 10
注册 2003-11-4
状态 离线
『第 9 楼』:  

dos软件汉字输出比较简单,汉字输入有两种方法:
       1  外挂 ucdos.
       2  内置输入法代码。
都能实现拚音输入。2 难度高,内存占用少,可做实时系统

2004-7-7 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
TurboY
中级用户

绝不写垃圾帖


积分 322
发帖 99
注册 2004-7-3
来自 湖北
状态 离线
『第 10 楼』:  



  Quote:
以下是引用qinqong在2004-6-4 上午 06:56:47的发言:
我用in=bioskey(0)输入数据,再强制转换成字符型,结果在dos下加载了汉字之后输入的东西输出后不是我想要的,比如我输入“想要”输出可能是“花朵”也可能是乱码

bioskey(0)实际是调用了INT16H的0号功能,你看看下面的说明:

        INT 16,0 - Wait for Keypress and Read Character
        AH = 00

        on return:
        AH = keyboard scan code
        AL = ASCII character or zero if special function key

        - halts program until key with a scancode is pressed
        - see  SCAN CODES


它的返回值不仅仅是ASCII码,其高8Bit是键盘扫描码,所以,你的程序应改为
    unsigned in; //汉字内码要用无符号数
    in=bioskey(0) & 0xff;




从95年开始用DOS3.2,96年在Windows3.1里认识了鼠标,97年开始用Win95,98年装过NetWare,99年迷过Linux,现在用WinXP、WinME和DOS7.1。一回首,从盲到忙,从忙到茫。
2004-7-8 00:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (123693086)  编辑帖子  回复  引用回复
boblhh9999
中级用户




积分 316
发帖 74
注册 2004-3-4
状态 离线
『第 11 楼』:  

10楼的见解,使我有所得,谢谢

2004-7-14 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
cdl
中级用户

bbpc


积分 340
发帖 107
注册 2004-4-11
状态 离线
『第 12 楼』:  

楼主还是没有说清楚是用中文dos系统还是不用,我想你可能是加载了中文系统。请不要用bioskey(0),换成字符串输入函数。因为一个汉字要2个字节编码,而bioskey(0)获取的只是输入法的编码按键。



x86!dos!
爱你就象老鼠爱大米
http://www.baby-pc.com/
2004-7-14 00:00
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
zk88
初级用户




积分 130
发帖 10
注册 2003-11-4
状态 离线
『第 13 楼』:  

还是找个现成源代码库吧!可以跳过一大堆问题。

2004-7-14 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: