C语言怎么输入bool型变量

2025-03-05 10:49:48
推荐回答(4个)
回答1:

你的输入是什么?
你只要搞清楚scanf里面所有的各种格式化修饰符的意思就一目了然了!
scanf用于从标准输入获取格式化输入
第一个%d,表示期望输入一个整数,scanf参数列表的后面有一个对应参数
第二个d,表示你第二个输入与第一个输入以字母d分开,否则算非法输入
第三个%c,表示期望输入一个字符,scanf参数列表的后面有一个对应参数
第四、五个%*d,本来是%d表示期望输入一个整数,中间插入了个*,改变了意思:忽略掉该整数输入,也就是你输入了整数但是不会赋给对应的变量啦
最后一个%d:表示期望输入一个整数,scanf参数列表的后面有一个对应参数
最后说明一点,对于任意一个字段,如果不符合要求就算是非法输入,结果可能就不是你预期的了。你可以尝试不同的输入,看看结果究竟咋样?

回答2:

bool类型也可以用%d来输入啦。布尔类型分配的存储单位只有1个位。你用%d输入一个整数是32个位,输入的数无论是多少,也只获取了第一个位的内容。比如十进制
7的二进制是111。输入到bool类型中就是1啦。
布尔类型变量只有
0和
1

回答3:

c语言里面没有bool类型的。bool类型就是一个true(非0),和false(0),其实就是一个整数类型,自己定义一个枚举变量来表示就行了。
typedef enum c_bool
{
bool_false = 0;
bool_true = 1;
}c_bool_e;

回答4:

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;