C语言怎么输入bool型变量

C语言怎么输入bool型变量如整型inti;scanf("%d",&i);那bool型呢... C语言怎么输入bool型变量如整型
int i;
scanf("%d",&i);
那bool型呢
展开
 我来答
娱乐小八卦啊a
高粉答主

2020-02-13 · 娱乐小八卦,天天都知道
娱乐小八卦啊a
采纳数:256 获赞数:117865

向TA提问 私信TA
展开全部

C语言中,本身没有bool(布尔型变量)。

bool是布尔型变量,也就是逻辑型变量的定义符,类似于float,double等,只不过float定义浮点型,double定义双精度浮点型。 

布尔型变量的值只有 真 (true) 和假 (false)。 

布尔型变量可用于逻辑表达式,也就是“或”“与”“非”之类的逻辑运算和大于小于之类的关系运算。

建议:最好别用bool,bool变量可用int代替。

扩展资料

BOOL和bool的区别:

1、类型不同

BOOL为int型

bool为布尔型

2、长度不同

bool只有一个字节

BOOL长度视实际环境来定,一般可认为是4个字节

3、取值不同

bool取值false和true,是0和1的区别

如果数个bool对象列在一起,可能会各占一个bit,这取决于编译器

BOOL是微软定义的typedef int BOOL(在windef.h中)。与bool不同,它是一个三值逻辑,TRUE/FALSE/ERROR,返回值为大于0的整数时为TRUE,返回值为0时候,为FALSE,返回值为-1时为ERROR。

参考资料来源:

百度百科——BOOL

四舍五不入6
高粉答主

2020-02-13 · 还没有填写任何签名哦
四舍五不入6
采纳数:27 获赞数:71371

向TA提问 私信TA
展开全部

scanf中没有对bool的定义,bool也不是标准c中的内容,要用bool就要包含stdbool.h头文件,bool的定义是将不为0的数置为1。

可以这样做:

bool i;

int j;

scanf("%d",&j);

i=(bool)j;//j为0 i就为0,j不为0,i就为1

i=(bool)j;

扩展资料:

scanf(函数原型

int scanf(const char * restrict format,...);

函数 scanf() 是从标准输入流stdin中读内容的通用子程序,可以说明的格式读入多个字符,并保存在对应地址的变量中。

函数的第一个参数是格式字符串,它指定了输入的格式,并按照格式说明符解析输入对应位置的信息并存储于可变参数列表中对应的指针所指位置。

参考资料来源:百度百科-scanf (计算机语言函数)

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
前2额12
2016-08-07 · TA获得超过1.8万个赞
知道大有可为答主
回答量:1.1万
采纳率:0%
帮助的人:4424万
展开全部
你的输入是什么?
你只要搞清楚scanf里面所有的各种格式化修饰符的意思就一目了然了!
scanf用于从标准输入获取格式化输入
第一个%d,表示期望输入一个整数,scanf参数列表的后面有一个对应参数
第二个d,表示你第二个输入与第一个输入以字母d分开,否则算非法输入
第三个%c,表示期望输入一个字符,scanf参数列表的后面有一个对应参数
第四、五个%*d,本来是%d表示期望输入一个整数,中间插入了个*,改变了意思:忽略掉该整数输入,也就是你输入了整数但是不会赋给对应的变量啦
最后一个%d:表示期望输入一个整数,scanf参数列表的后面有一个对应参数
最后说明一点,对于任意一个字段,如果不符合要求就算是非法输入,结果可能就不是你预期的了。你可以尝试不同的输入,看看结果究竟咋样?
追问
bool型用什么修饰符
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
其实只是为求粉
2016-08-07 · 超过41用户采纳过TA的回答
知道小有建树答主
回答量:126
采纳率:100%
帮助的人:70.4万
展开全部
bool类型也可以用%d来输入啦。布尔类型分配的存储单位只有1个位。你用%d输入一个整数是32个位,输入的数无论是多少,也只获取了第一个位的内容。比如十进制 7的二进制是111。输入到bool类型中就是1啦。

布尔类型变量只有 0和 1
追问
不对呀,我%d输入一串数字,然后用%d再打印会出现另一串数字
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
虚拟酱
推荐于2017-11-22 · TA获得超过300个赞
知道小有建树答主
回答量:312
采纳率:80%
帮助的人:193万
展开全部
scanf中没有对bool的定义,bool也不是标准c中的内容,要用bool就要包含stdbool.h头文件,bool的定义是将不为0的数置为1

可以这样做
bool i;
int j;
scanf("%d",&j);
i=(bool)j;//j为0 i就为0,j不为0,i就为1

i=(bool)j;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式