| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1565 人关注过本帖, 1 人收藏
标题:为什么输出结果是这样?
只看楼主 加入收藏
troyzyc
Rank: 1
等 级:新手上路
帖 子:108
专家分:0
注 册:2016-7-4
结帖率:56.6%
收藏(1)
已结贴  问题点数:3 回复次数:7 
为什么输出结果是这样?
#include<stdio.h>

int main()
{
   char c1,c2;
   c1=197;c2=198;
   printf("c1=%c,c2=%c\n",c1,c2);
   printf("c1=%d,c2=%d\n",c1,c2);

   return 0;
 }

输的结果为
c1=?,c2=?  这个应该是ascII码的原因。
c1=-59,c2=-58  这个是什么情况导致的?
搜索更多相关主题的帖子: return 
2016-11-07 20:04
linlulu001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
注 册:2016-4-13
收藏
得分:0 
    system("mode con cp select=437");改下代码页。
c1=-59,c2=-58  这个是什么情况导致的?
c1=ffff ffc5==1111 1111 1111 1111 1111 1111 1100 0101
c2=ffff ffc6==1111 1111 1111 1111 1111 1111 1100 0110
2016-11-07 20:29
troyzyc
Rank: 1
等 级:新手上路
帖 子:108
专家分:0
注 册:2016-7-4
收藏
得分:0 
看不明白!
2016-11-08 20:47
syl411120229
Rank: 2
等 级:论坛游民
帖 子:8
专家分:30
注 册:2016-11-7
收藏
得分:0 
版主说的看不得
2016-11-08 21:13
时光轴
Rank: 1
等 级:新手上路
帖 子:11
专家分:1
注 册:2016-11-8
收藏
得分:0 
回复 楼主 troyzyc
这里是不是应该这样写:
 c1='197';c2='198';
2016-11-08 22:10
Ted_Ming
Rank: 2
等 级:论坛游民
帖 子:15
专家分:35
注 册:2016-11-2
收藏
得分:1 
char 8  -2^7 ~ 2^7-1; 197 overflow:相当于 197 - 256 = -59;使用 unsigned char 就能解决,unsigned char超过128的没有字符对应,所以输出还是 ?
2016-11-08 23:02
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:0 
#include <stdio.h>

int main( void )
{
    char c = 197;
    if( c == -59 )
        puts( "equal" );
    else
        puts( "not equal" );

    return 0;
}

题主看看输出什么就应该明白了吧。
(其它人不需要试,因为char是无符号的,还是具符号的,由实现定义)
2016-11-09 08:15
StadyC
Rank: 6Rank: 6
等 级:侠之大者
威 望:6
帖 子:182
专家分:430
注 册:2016-10-13
收藏
得分:2 
char可以表示的范围是-128~~~+127
unsigned char可以表示范围是0~~~~~~~~~256
char c = 197;    //超出范围,会被这样转化,197 - 256 = -59。198也一样,198 - 256 = -58

还有一些有趣的,不是所有大于128的数都没有字符的,例如char ch = 865; printf("%c\n", ch);    //这个就会输出字符a,至于为啥嘛,交给你先思考一下咯

[此贴子已经被作者于2016-11-10 11:41编辑过]

2016-11-10 10:40
快速回复:为什么输出结果是这样?
数据加载中...
 
   



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

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