c - While循环第二次忽略scanf

标签 c while-loop scanf

#include <stdio.h>

int main ()
{
    char loop='y';
    while(loop != 'n') {
        printf("loop? ");
        scanf("%c", &loop);
        if(loop != 'y') {
            loop='n';
        }
    }
    return 0;
}

如果我输入“y”,他会重新启动 while 循环,但第二次会忽略 scanf 并结束循环。有人可以帮忙吗?

最佳答案

确保 scanf 丢弃换行符。将其更改为:

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

关于c - While循环第二次忽略scanf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52326248/

相关文章:

c - 终端中带有 C 的文本文件

c# - 如何从 C# 调用具有 void* 回调和对象参数的 C++ Dll 中的函数

java - 验证输入并防止 try/catch 退出

java - While-Loop 完成问题和最终值计算

c - 使用 scanf 解析字符串

objective-c - 将不为零的指针转换为 BOOL 返回 NO

c - 混合 C 和 ASM,皮质 M4

java - while 循环之外的语句被忽略?

c++ - 如何阅读此类输入? A,1,BC,2

c - fscanf 是否区分空格(换行符和空格)