| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6040 人关注过本帖
标题:位运算出现[Warning] multi-character character constant
取消只看楼主 加入收藏
七夜之华
Rank: 3Rank: 3
来 自:China
等 级:论坛游侠
威 望:5
帖 子:82
专家分:103
注 册:2014-9-7
结帖率:100%
收藏
已结贴  问题点数:30 回复次数:7 
位运算出现[Warning] multi-character character constant
/* 对于下面提示的警告,网上有说 一般来说,字符里面比如'. '含有空格的话,会提示这个警告,经检查确认没有空格,不过警告依然继续,或者出现下面的页面提示。
图片附件: 游客没有浏览图片的权限,请 登录注册

*/
#include
#include
main()
{
      char c;
      int a,b;
      int n;
      printf("请输入你要运算的第一个数的值:");
      scanf("%d",a);
      printf("\n");
      printf("请输入你要运算的第二个数的值:");
      scanf("%d",b);
      printf("\n");
      printf("\n");
      printf(" 按&即将进入按位与,按|即将进入按位或,按^即将进入按位异或,按~即将进入求反操作,按<<即将进入左移,按>>即将进入右移操作\n");
      printf("请确认你要进行的运算:");
      scanf("%c",c);
      switch(c){
                case '&':printf("运算结果为:",a&b);break;
                case '|':printf("运算结果为:",a|b);break;
                case '^':printf("运算结果为:",a^b);break;
                case '~':printf("运算结果为:",~a,~b);break;
                case '<<':
                     printf("请确认你要左移的位数n:");
                     printf("\n");
                     printf("运算结果为:",a<<n,b<<n);
                     break;
                case '>>':
                     printf("请确认你要右移的位数n:");
                     printf("\n");
                     printf("运算结果为:",a>>n,b>>n);
                     break;
                default :printf("您的输入有误,请重新输入!");
                }
      system("pause");
      
}



[此贴子已经被作者于2015-11-30 11:22编辑过]

搜索更多相关主题的帖子: 网上 include character 
2015-11-30 11:20
七夜之华
Rank: 3Rank: 3
来 自:China
等 级:论坛游侠
威 望:5
帖 子:82
专家分:103
注 册:2014-9-7
收藏
得分:0 
回复 3楼 wp231957
感谢批评、

#############################################
##########################################
因为不懂、才要学习、只有学习、才有进步。
2015-11-30 12:23
七夜之华
Rank: 3Rank: 3
来 自:China
等 级:论坛游侠
威 望:5
帖 子:82
专家分:103
注 册:2014-9-7
收藏
得分:0 
回复 4楼 wmf2014
是个问题。

#############################################
##########################################
因为不懂、才要学习、只有学习、才有进步。
2015-11-30 12:23
七夜之华
Rank: 3Rank: 3
来 自:China
等 级:论坛游侠
威 望:5
帖 子:82
专家分:103
注 册:2014-9-7
收藏
得分:0 
回复 2楼 TonyDeng
/* 现在的运行时这样的
图片附件: 游客没有浏览图片的权限,请 登录注册

直接跳转到 default选项了,这是为什么?

*/

#include <stdio.h>
#include <math.h>
main()
{
      char c;
      int a,b;
      int n;
      printf("请输入你要运算的第一个数的值:");
      scanf("%d",&a);
      printf("\n");
      printf("请输入你要运算的第二个数的值:");
      scanf("%d",&b);
      printf("\n");
      printf("\n");
      printf(" 按&即将进入按位与,按|即将进入按位或,按^即将进入按位异或,按~即将进入求反操作,按<<即将进入左移,按>>即将进入右移操作");
      printf("\n");
      printf("请确认你要进行的运算:");
      scanf("%s",&c);
      switch('c'){
                case '&':printf("运算结果为:",a&b);break;
                case '|':printf("运算结果为:",a|b);break;
                case '^':printf("运算结果为:",a^b);break;
                case '~':printf("运算结果为:",~a,~b);break;
                case '<<':
                     printf("请确认你要左移的位数n:");
                     printf("\n");
                     printf("运算结果为:",a<<n,b<<n);
                     break;
                case '>>':
                     printf("请确认你要右移的位数n:");
                     printf("\n");
                     printf("运算结果为:",a>>n,b>>n);
                     break;
                default:printf("您的输入有误,请重新输入!");
                }
      system("pause");
      
}



#############################################
##########################################
因为不懂、才要学习、只有学习、才有进步。
2015-11-30 16:18
七夜之华
Rank: 3Rank: 3
来 自:China
等 级:论坛游侠
威 望:5
帖 子:82
专家分:103
注 册:2014-9-7
收藏
得分:0 
回复 8楼 wp231957
嗯,网上确实有这样的答案,不过对于这样的情况,我尝试着用双引号去使用,然而却是失败的。

#############################################
##########################################
因为不懂、才要学习、只有学习、才有进步。
2015-11-30 16:32
七夜之华
Rank: 3Rank: 3
来 自:China
等 级:论坛游侠
威 望:5
帖 子:82
专家分:103
注 册:2014-9-7
收藏
得分:0 
回复 8楼 wp231957
图片附件: 游客没有浏览图片的权限,请 登录注册

对于 case label does not reduce to an integer constant
解释为:案例标签不减少到一个整型常量  即是说 case接收的不能为字符串,应该为单个字符或单个字节常量。

是不是需要这样写:
int c;
// 1代表一种情况,2代表一种情况。。。。。这样写,然后再 case1: 后面的句子中加以实现。
switch(c)
{case 1:
 case 2:
 ...
 default:
}


不过这样有木有很生硬?


#############################################
##########################################
因为不懂、才要学习、只有学习、才有进步。
2015-11-30 16:42
七夜之华
Rank: 3Rank: 3
来 自:China
等 级:论坛游侠
威 望:5
帖 子:82
专家分:103
注 册:2014-9-7
收藏
得分:0 
回复 14楼 wp231957
嗯,是这样的。

#############################################
##########################################
因为不懂、才要学习、只有学习、才有进步。
2015-12-01 13:01
七夜之华
Rank: 3Rank: 3
来 自:China
等 级:论坛游侠
威 望:5
帖 子:82
专家分:103
注 册:2014-9-7
收藏
得分:0 
回复 16楼 wp231957
/*
图片附件: 游客没有浏览图片的权限,请 登录注册
图片附件: 游客没有浏览图片的权限,请 登录注册

感谢各位,已经实现了这个子程序。*/

#include <stdio.h>
#include <math.h>

void Bit_operation()
{
     int a,b;
     int d = 0;
     int n;
     printf("  1:与运算     2:或运算     3:按位与或   4:求反操作  \n");
     printf("  5:左移操作   6:右移操作   7:Exit\n");
     printf("请输入你的选择");
     scanf("%d",&n);
     printf("\n");
     switch(n){
                case 1:
                     printf("请输入你要运算的第一个数的值:");
                     scanf("%d",&a);
                     printf("\n");
                     printf("请输入你要运算的第二个数的值:");
                     scanf("%d",&b);
                     d = a&b;      
                     printf("运算结果为:%d\n",d);break;
                case 2:
                     printf("请输入你要运算的第一个数的值:");
                     scanf("%d",&a);
                     printf("\n");
                     printf("请输入你要运算的第二个数的值:");
                     scanf("%d",&b);
                     d = a|b;
                     printf("运算结果为:%d\n",d);break;  
                case 3:
                     printf("请输入你要运算的第一个数的值:");
                     scanf("%d",&a);
                     printf("\n");
                     printf("请输入你要运算的第二个数的值:");
                     scanf("%d",&b);
                     d = a^b;
                     printf("运算结果为:%d\n",d);break;
                case 4:
                     printf("请输入你要运算的数值:");
                     scanf("%d",&a);
                     printf("\n");
                     d = ~a;
                     printf("运算结果为:%d\n",d);break;
                case 5:
                     printf("请输入你要运算的数值:");
                     scanf("%d",&a);
                     printf("请确认你要左移的位数:");
                     scanf("%d",&n);
                     d = a<<n;
                     printf("运算结果为:%d\n",d);break;
                case 6:
                     printf("请输入你要运算的数值:");
                     scanf("%d",&a);
                     printf("请确认你要左移的位数:");
                     scanf("%d",&n);
                     d = a>>n;
                     printf("运算结果为:%d\n",d);break;      
                default:
                     printf("您的输入有误,请重新输入!");
                }
}
main()
{
      char c;
      int a,b;
      int n;
      printf("欢迎来到运算小世界!!!\n");
      printf("\n");
      Bit_operation(a,b,n);
      system("pause");
      
}




#############################################
##########################################
因为不懂、才要学习、只有学习、才有进步。
2015-12-01 14:10
快速回复:位运算出现[Warning] multi-character character constant
数据加载中...
 
   



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

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