永发信息网

为什么布尔类型变量不能直接用读语句输入

答案:4  悬赏:40  手机版
解决时间 2021-03-31 07:37
为什么布尔类型变量不能直接用读语句输入
最佳答案
这同编译器有关。
如果用 #include
bool 的 定义 是:
typedef int BOOL;
所以 BOOL 就是 整型。
输出 数值 就是 整型。
BOOL x=0;
scanf("%d",&x);
// 愿意加一句 if (x != 0) x=1; 也无妨。
----------------------
如果你的编译器定义 是:
typedef unsigned char bool;
那你 输入输出 就按1字节整型 考虑就可以了。
全部回答
%d是用于输入int类型的,占4字节。而bool只占1字节。
是对的啊
#include
void main()
{
bool x=0;
//CTRL + C 退出循环
while(1)
{
scanf("%d",&x);
if(x)
printf("TRUE\n");
else
printf("FALSE\n");
}
}追问如果你在scanf("%d",&x);后加上printf("%d",&x);就会发现是不对的追答执行printf("%d\n",&x);时,输出语句要读取包括x后的4个字节的内容,然后转换为整型,结果当然会不一样。
如果是C,很不幸,scanf没有对应的转换控制符。
如果是C++,用cin试试。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
已知集合A={x|-4<x<6}.B={x|x2-4ax+3a2=0},(
移动硬盘启动win8.1该怎么做
2000年用重金买回的圆明园哪三件兽首
老鞋匠阅读答案
怎么在海信电视上下载腾讯视频
魅族pro6与ovvi x6s
为什么MP4下载到手机里是非法视频
真心如水,凉了很难续杯;真情如镜,碎了很难
平遥9号有没有雨平遥9号什么天气
genset柴油发电机组是什么牌子
两个正方形的边长比是1:3,面积比是A.1:9B.
如图1所示是某次测力时的弹簧秤示意图,指针
vivoy67屏幕碎了要多少钱修
本田雅阁转速表总是保持一千转不回零怎么回事
一般第二胎孩子是不是比第一胎出生的早
推荐资讯
扬州御龙湾商业广场乘多少路公交
广联达自定义绘制的球型屋面怎么不是圆形的呢
pic 支持printf函数吗
念佛为什么可以改八字
长城东起_______关,西至________关,全长约_
工贸企业指的是什么企业
三朝酒对联 三朝酒对联集锦
下面成语中别字请修改亭亭欲立
y=x^3-3x求导 详细解
魔域里的任务在哪、怎样升级最快?是打怪还是
中国传统数学的特点
阴宅风水破了怎么补救
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?