| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1952 人关注过本帖
标题:刚学c语言,遇到问题求解
只看楼主 加入收藏
pydlq
Rank: 6Rank: 6
等 级:侠之大者
威 望:1
帖 子:129
专家分:488
注 册:2017-9-5
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:15 
刚学c语言,遇到问题求解
程序代码:
#include<stdio.h>
int main()
{unsigned char c=255;
printf("%d %c \n",c,c);
return 0;
}

为什么我c在128-255之间取值%c的输出只有128是对的,其他都是个“?”?
搜索更多相关主题的帖子: c语言 return 取值 输出 其他 
2017-09-09 10:35
pydlq
Rank: 6Rank: 6
等 级:侠之大者
威 望:1
帖 子:129
专家分:488
注 册:2017-9-5
收藏
得分:0 
unsigned char 我实验了0-128,全部输出对应ASCII。之后的全是问号,有人知道为什么吗?求教!
2017-09-09 11:02
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10609
专家分:43210
注 册:2014-5-20
收藏
得分:0 
ASCII分基础ASCII码(7bit,0~127)和扩展ASCII码(8bit,128~255)
有些是不可打印字符、控制符或图符,在不同的平台上有不同的表现。
2017-09-09 11:21
pydlq
Rank: 6Rank: 6
等 级:侠之大者
威 望:1
帖 子:129
专家分:488
注 册:2017-9-5
收藏
得分:0 
回复 3楼 吹水佬
这我知道,可是我只有128成功了,其他都没成功,我试了几十个128之后的一个没成。
2017-09-09 12:43
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10609
专家分:43210
注 册:2014-5-20
收藏
得分:20 
以下是引用pydlq在2017-9-9 12:43:19的发言:

这我知道,可是我只有128成功了,其他都没成功,我试了几十个128之后的一个没成。

你是怎理解“不可打印”的?
2017-09-09 14:06
pydlq
Rank: 6Rank: 6
等 级:侠之大者
威 望:1
帖 子:129
专家分:488
注 册:2017-9-5
收藏
得分:0 
回复 5楼 吹水佬
我的意思是,我这不是“有些”,而是只有128可以。我是新人,不知道是不是自己写的有问题,所以特来学习求教。
2017-09-09 15:23
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10609
专家分:43210
注 册:2014-5-20
收藏
得分:0 
以下是引用pydlq在2017-9-9 15:23:00的发言:

我的意思是,我这不是“有些”,而是只有128可以。我是新人,不知道是不是自己写的有问题,所以特来学习求教。

你又是怎样理解“在不同的平台上有不同的表现”?
你的运行环境是什么?
2017-09-09 15:56
pydlq
Rank: 6Rank: 6
等 级:侠之大者
威 望:1
帖 子:129
专家分:488
注 册:2017-9-5
收藏
得分:0 
我是用vs2010的,不晓得是我vs装错了 还是我写错了
2017-09-09 16:02
pydlq
Rank: 6Rank: 6
等 级:侠之大者
威 望:1
帖 子:129
专家分:488
注 册:2017-9-5
收藏
得分:0 
回复 7楼 吹水佬
我是用vs2010的,不晓得是我vs装错了 还是我写错了
2017-09-09 16:02
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10609
专家分:43210
注 册:2014-5-20
收藏
得分:0 
以下是引用pydlq在2017-9-9 16:02:24的发言:

我是用vs2010的,不晓得是我vs装错了 还是我写错了

如果是使用汉字字符集的运行环境,扩展ASCII码也会被用作汉字编码(双字节编码)。
所以中文环境显示一个扩展ASCII码是无意义的,一个汉字编码要用二个扩展ASCII码。
如“啊”字:
图片附件: 游客没有浏览图片的权限,请 登录注册

#include<stdio.h>
int main()
{
    unsigned char a=176,b=161;
    printf("%c%c\n",a,b);
    return 0;
}

2017-09-09 16:14
快速回复:刚学c语言,遇到问题求解
数据加载中...
 
   



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

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