| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 991 人关注过本帖
标题:我是新手,学C中,大学看一下这个为什么显示不正常……
只看楼主 加入收藏
源本英明C
Rank: 3Rank: 3
来 自:日本
等 级:论坛游侠
帖 子:113
专家分:154
注 册:2010-5-14
收藏
得分:0 
回复 楼主 matrix6
建议你好好学一下C语言第五版的第三章!

柔术:打败对手的最好方法就是心狠手辣,因为对手不会给你太多机会,如果他够厉害!
2010-05-21 09:30
Kid_X
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:216
专家分:515
注 册:2007-10-8
收藏
得分:0 
原因很简单:就是终端所使用的代码页不同。命令提示符一般用的是GBK编码,也就无法显示扩建ASCII码,即编号128到255的ascii码。这其实是牵涉到字符编码问题。
我不知道楼主为啥第一个能显示方框。我用VC6第一行是一个问号。
如何让终端显示扩展ascii码,有两个应急方法。第一个是改变命令提示符的默认代码页。第二种方法是在代码中插入改变代码页的代码。不过这两种都会有副作用,就是不能正确显示中文了。第二种方法的代码如下:
程序代码:
#include <stdio.h>
#include <windows.h>
int main(int argc, char **argv)
{
    SetConsoleOutputCP(437);
    printf("%c\n",219);
    printf("%c%c\n",219,219);
    return 0;
}
2010-05-21 09:51
yao_210162
Rank: 2
等 级:等待验证会员
帖 子:33
专家分:18
注 册:2009-6-8
收藏
得分:0 



   两个超过127的ASCII码组合在一起就是一个汉字、如果你把printf("%c%c\n",219,219);改成printf("%c%c\n",210,162)输出的就是一个“尧”;、因为一个汉字要用两个ASCII码来代替!
2010-05-21 10:03
Kid_X
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:216
专家分:515
注 册:2007-10-8
收藏
得分:0 
LZ的,一个大于127的ascii码和一个小于127的ascii码也能组合成一个汉字。
2010-05-21 10:13
炫舞小子
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2010-05-21 13:03
快速回复:我是新手,学C中,大学看一下这个为什么显示不正常……
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015661 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved