Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
您可以使用scanf测试_Bool类型的有效输入吗?关于C_C_Boolean_Scanf - Fatal编程技术网

您可以使用scanf测试_Bool类型的有效输入吗?关于C

您可以使用scanf测试_Bool类型的有效输入吗?关于C,c,boolean,scanf,C,Boolean,Scanf,关于我用C编写的这段代码,我有一个问题: printf("Do you own a microwave?Enter 1 for Yes and 0 for No\n"); while((scanf("%d",&microw))==0){ printf("Please enter a valid number:\n"); scanf("%d",&microw);} 我的编译器说:“format%d需要类型为int*的参数,但参数2的类型为\u B

关于我用C编写的这段代码,我有一个问题:

 printf("Do you own a microwave?Enter 1 for Yes and 0 for No\n");
    while((scanf("%d",&microw))==0){
        printf("Please enter a valid number:\n");
    scanf("%d",&microw);}

我的编译器说:“format
%d
需要类型为
int*
的参数,但参数2的类型为
\u Bool*
”。据我所知,boolean被认为是int类型,所以我不确定为什么会收到此警告。除了设置另一个变量以使用
scanf
进行测试,然后将另一个
\u Bool
类型的变量指定为true或false之外,我还能如何测试这种情况?任何反馈都将不胜感激。谢谢大家:)。

你们收到它是因为,它需要一个
int*
,而你们传递的是一个
\u Bool*
。它们都是整数,但类型不同——在我的系统中,
\u Bool
的大小为1,而
int
的大小为4

您需要的内容没有
scanf
说明符,因此如果您确实需要最小的存储空间,则需要使用
char
。之后,您始终可以将值分配给
\u Bool

e、 g


(此外,您的代码无法按预期工作。如果您使用
%d
输入无效字符,它将进入一个无休止的循环。)

您使用的是
\u Bool
还是
\u Bool
?如需有关CI中布尔类型的更多信息,请参阅。CI希望有一个说明符,否则,分配_Bool值本身会带来更多麻烦。但不用担心。谢谢你的帮助。我很感激:)!
scanf("%c",&microw);
_Bool b = microw - '0';