首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

两个基础有关问题 编译和布尔

2012-02-16 
两个基础问题 编译和布尔#include iostreamusing namespace stdint main(){int a5,b8int c7,d8co

两个基础问题 编译和布尔

#include <iostream>
using namespace std;
int main()
{
  int a=5,b=8;
  int c=7,d=8;
  cout<<boolalpha<<a==c<<b==d<<endl;
  system"(pause");
  return 0;
}
编译不过去,是仿造cout << boolalpha << ( str1==str2 ) << endl;//如果str1==str2,则输出true,不等输出false.


char a=true; cout结果是0,(char a=true 结果是空。)
将布尔赋给其它的如int,float等都是1,为什么独它为0,编译能通过。
没发现教程提到是否该将布尔型赋给字符变量。




[解决办法]
拆开呢?
cout<<boolalpha<<(a==c)<<endl;
cout<<boolalpha<<(b==d)<<endl;
[解决办法]
int main()
{
int a=5,b=8;
int c=7,d=8;
cout<<boolalpha<< (a==c) << (b==d) <<endl;
system("pause");
return 0;
}

[解决办法]
你那是什么编译器?应该是编译器的问题,我这VS2008的编译器赋给char也是1
[解决办法]
将 布尔赋值给 CHAR 是未定义行为 不同编译器不一样的
[解决办法]

探讨
第一个问题解决了,最早自己也加了小括号,未成功,便又改回去了,现在发现是自己的"(pause"的打字低级错误,二楼三楼的方法都对,多谢了,现在只剩第二个问题待解答了。
不好意思再附加一个问题,将整型显式转换为字符型,自己测试:
int jj=123;
char kk=(char)jj;
cout<<jj<<"看看结果怎样"<<kk<<endl;
jj=123时会正确显示,j……

[解决办法]
超出char的表示范围,int强制转换为char会被截断。
[解决办法]
感觉楼主最好不要那么用。

热点排行