Как сделать чтобы scanf игнорировал пробелы между переменными при вводе?

Мне нужно чтобы при вводе 3 чисел между ними и запятой можно было ставить пробелы. При этом чтобы они были integer,чтобы их было ровно 3 и чтобы при вводе числа другого формата или символа выдавало ошибку. Я написал такой код:

#include<stdio.h>   
int main()     
{   
    int x,y,z;
    printf("RGB: \n");
    if(scanf("%d, %d, %d", &x, &y, &z) !=3 || x>255 || x<0 || y>255 || y<0 || z>255 || z<0) {
        printf("Input Error.\n");
        return 1;
    }
    printf("#%02X%02X%02X",x,y,z);
    return 0;
}

Например, если я введу: 1 , 1 , 1 вывод будет Input Error . Как мне этого избежать? Вводя, например 1, 1, 1 всё работает как нужно.

Появилась другая проблема. Я дополнил код:

#include<stdio.h>   
int main()     
{   
    int x,y,z;
    

    printf("RGB: \n");
    if(scanf("rgb(%d , %d , %d)", &x, &y, &z) !=3 || x>255 || x<0 || y>255 || y<0 || z>255 || z<0) {
        printf("Error.\n");
        return 1;
    }
    printf("#%02X%02X%02X",x,y,z);
    return 0;
} 

Как теперь сделать чтобы между rgb и скобками тоже можно было ставить пробелы? Например rgb ( 1 , 1 , 1 )


Ответы (0 шт):