scanset format과 scanf의 리턴 값을 활용해야 괜찮은 결과가 나옴


#include <stdio.h>

int main (void) {
    int n = 0;
    char c;
    printf("input: ");
    if (scanf("%d%[^0-9\\n]", &n, &c) == 1) {
        if (1 <= n && n <= 100) {
            printf("%d ", n);
            return 0;
        }   
    }   
    while (getchar() != 10);                                                                                                          
    main();
}


아...C 안한지 노무노무 오래되서 더 괜찮게는 못하겠다 이기...


옛날이었으면 분명 바이트별로 읽으면서 작동하는 상태머신 만드는 괴수들도 나올텐데 왜 안보이냐...프갤 수준