繁体   English   中英

在while循环中比较char

[英]Comparing char in a while loop

只要输入不是x,循环将继续询问输入,并打印出A或B。

int main (void){

    char input;

    while( input != 'x'){

        printf("Enter Input:");

        scanf("%c", &input);

        if (input == 'a'){

            printf("A \n");
        }

        else{

            printf("B\n");
        }

   }

    return (0);
}

问题是,无论我输入a还是b或其他任何内容作为输入,每次输入输入后,它都会打印输出,并且还会在新行中打印出“ Enter Input:B”。 谁能告诉我如何解决这个问题,谢谢!

这是发生了什么:

输入输入:a

一种

输入Input:B / 输出后,它总是打印此行,我如何摆脱它? /

输入输入:a

一种

输入输入:B

输入输入:b

输入输入:B

输入输入:b

为了忽略换行符, scanf应该可能是:

scanf(" %c", &input);
       ^

您也可能想在该printf之后立即刷新stdout:

printf("Enter Input:");
fflush(stdout);

您需要吃newline

scanf("%c", &input);
  while((ch=getchar())!='\n');

该错误是因为从输入中读取了换行符。

您也可以参考这一点: 为什么在scanf()之后,getchar()为什么不等我按Enter?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM