小编tan*_*216的帖子

递归scanf死循环

我试图要求输入。如果它不是整数,则应再次要求输入,这就是为什么我使用如下递归。

#include <stdio.h>


void hi() {
    int a;
    printf("Input a: ");
    if(scanf("%d", &a) == 0)
        a = -1;
    switch(a) {
        case 1:
            printf("Hello!");
            break;
        case 0:
            return;
        default:
            hi();
            return;
            break;
    }
}

int main()
{
    hi();

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出是

Input a: *asd* Input a: Input a: Input a: Input a: Input a: Input a: Input a: Input a: Input a: Input a: Input a: Input a: Input a: Input a: Input a: Input a: Input a: Input a: …

c recursion

2
推荐指数
1
解决办法
59
查看次数

标签 统计

c ×1

recursion ×1