| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 654 人关注过本帖
标题:关于超过127字符输出的问题,请教啦,谢谢:)
只看楼主 加入收藏
lxj_1982
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2013-11-6
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
关于超过127字符输出的问题,请教啦,谢谢:)
谭浩强写的《C程序设计》第四版的第48页中是这样写的:
char c='?'
c是一个字符变量,实质上是一个字节的整型变量,由于它常用来存放字符,所以被称为字符变量,可以把0~127之间的整数赋给一个字符变量。
程序如下:
int main()
{
  char c1,c2;
  c1=97;
  c2=98;
 printf("c1=%d,c2=%d\n",c1,c2);
 printf("c1=%c,c2=%c\n",c1,c2);
 return 0;
}
输出的结果是:
c1=97,c2=98
c1=a,c2=b
如果把程序中修改为:
int main()
{
  char c1,c2;
  c1=128;
  c2=129;

 printf("c1=%d,c2=%d\n",c1,c2);
printf("c1=%c,c2=%c\n",c1,c2);
 return 0;
}
c1=128按照字符可以输出对应ASCII的符号,但是c2按照字符输出则是一个“?”,这是为什么呢?128和129都超出127了啊;
请大侠们指点,谢谢

搜索更多相关主题的帖子: C程序设计 return color 
2013-11-06 22:05
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:8 
超过127的一般来说都是双字节字符了  比如汉字啥的   其处理手法不能像char那样处理了

DO IT YOURSELF !
2013-11-06 22:20
lxj_1982
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2013-11-6
收藏
得分:0 
嗯,我想不通的就是为什么128可以输出,而129以后的就是“?”了呢,百思不得其解,呵呵;
我用的是Visual C++ 6.0的编译系统,我自己的计算机是:Intel(R) Core(TM);64位的操作系统
2013-11-06 22:41
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
看来2楼的话是白说了
 
双字节字符 是需要2个连着的字符(单字节)一起输出 才能输出一个完整的双字节字符 比如 一个汉字

而你非要拆开来输出  那一定是乱码  (比如你所说的?就是其中一种)

DO IT YOURSELF !
2013-11-06 22:46
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:8 
全是似是而非的说法,说它错嘛,太过认真;说它对嘛,又太违心。

只回答你提的那个问题吧,输出什么,只取决于平台使用的代码页。
2013-11-07 09:23
离水的鱼
Rank: 1
等 级:新手上路
帖 子:2
专家分:4
注 册:2013-11-7
收藏
得分:4 
字符类型取值范围为-128~127.所以当以%d形式输出时是-128与-127,因为其已经超出了char的范围。而从128到255是ASCII扩展字符,有多种实现,具体输出取决于你的操作系统上的运行库。
2013-11-07 10:40
lxj_1982
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2013-11-6
收藏
得分:0 
哦,多谢各位大侠了,也就是说超出0~127,输出就是不确定的情况了,不能按照单个字节在计算机中以补码形式存放的思路来看了,对吧。
2013-11-07 10:50
快速回复:关于超过127字符输出的问题,请教啦,谢谢:)
数据加载中...
 
   



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

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