C编程,如果getchar带有_Bool

C编程,如果getchar带有_Bool,c,boolean,C,Boolean,简单的打字错误: 1您需要_boolb1;而不是_Bool=b1 2您需要ifputcharb1==1,而不是ifputcharb1=1。您正试图将1分配给putcharb1,而这在C中是不可能的,因此出现了编译器错误 在条件语句中使用putcharb1也是有问题的。你是说,更简单一点 10 16 C:\Netzwerk\owncloud\Visualisierung\TAG3\3.5 log. Datentyp\bool_leer.c [Error] lvalue required as

简单的打字错误:

1您需要_boolb1;而不是_Bool=b1

2您需要ifputcharb1==1,而不是ifputcharb1=1。您正试图将1分配给putcharb1,而这在C中是不可能的,因此出现了编译器错误

在条件语句中使用putcharb1也是有问题的。你是说,更简单一点

10  16  C:\Netzwerk\owncloud\Visualisierung\TAG3\3.5 log. Datentyp\bool_leer.c  [Error] lvalue required as left operand of assignment
as putchar返回写入输出流的字符数,在您的情况下,该字符数始终为非零

if (b1){
这里有两个问题:

将_Bool=b1更改为_boolB1; 将ifputcharb1=1改为ifputcharb1==1,或如芭丝谢芭指出的那样,将ifputcharb1=1改为ifb1。
ifputcharb1=1{}->ifputcharb1==1{}\u Bool=b1;这甚至可以编译吗?1与“1”不同。与0相同。我在==7之后遇到另一个错误C:\Netzwerk\owncloud\visualizerung\TAG3\3.5 log。Datentyp\bool_leer.c[错误]应为标识符,或在“=”标记\u bool b1;之前;,不是_Bool=b1;。好啊我已经纠正了所有的错误。该问题处于适合该场地的边界上;但是它写得很好。include int mainvoid{u Bool b1;printf1=Wahr,0=unwhr\n;b1=getchar;ifputcharb1==1{printf-b1=1=>Wahr\n;}否则{printf-b1=0=>unwhr\n;}返回0;}它可以工作,但无论是1还是0eXme,我都会得到相同的结果,通过输出,它只给我第一个printf,不管我写0或9或其他。它给了我永远真实的感觉1@eXme:您是否阅读了代码使用的函数的文档?我对C有点陌生。是的,这是我理解它如何工作的方式,但我看到可能出了问题。您能试着解释一下您使用此代码要实现什么吗?为什么要这样使用putchar?我认为putchar是getchar函数的输出。现在我明白了,它也可以没有putchar。我需要它得到第一个,如果它是b1变量中的1,其他结果作为第二个printf
if (b1){
int main(void) 
{
   _Bool b1 /* = 1 or 0 */;
   printf("1 = Wahr, 0 = Unwahr\n");
   b1 = getchar();
   if (putchar(b1) == 1) {
       printf("b1=1 =>wahr\n");
   }
   else {
    printf("b1= =>unwahr\n");
   }

   return 0;
}