2015-01-29 7 views
0

Мне было интересно, есть ли способ создать дополнительные входы в мой код? Я программирую код, который будет печатать значения RGB для изображения с открытым текстом 480x480. Код должен позволять мне вводить 4 необязательных значения в любом порядке - -rx масштабирует грех красной составляющей каждого пикселя на два x, -gx -gx -го же, что и -r, за исключением зеленого компонента -bx делает то же самое, но с синим -sn указывает длину стороны изображения для целого числа n.Включая дополнительные входы в программу?

Вот мой код:

int* arrayfill() 
{ 
int* bmult; 
bmult = malloc(sizeof(int)*480*480); 
for (int y = 0; y < 480; y++) { 
    for (int x = 0; x < 480; x++) { 
    bmult[x + y*480] = (128*sin(sqrt(pow(x-240,2) + pow(y-240,2)))+128); 
    if (0 <= (bmult[x + y*480]) || (bmult[x + y*480]) >= 255) { 
     continue; 
    } 
    else { 
     fprintf(stderr, "The scale must result in a b value between 0 & 255"); 
     break; 
    } 
    }} 
return bmult; 
} 

int main(int argc, char* argv[]) 
{ 
    int* newarray = arrayfill(); 
    printf(" P3\n"); 
    printf("480 480\n"); 
    printf("255\n"); 
    for (int count = 0; count < 480*480; count++) { 
    printf("0, 0, %d\n", newarray[count]); 
    } 
} 
+0

Используйте парсер параметров. С какими частями вам нужна помощь? Посмотрите, в основном, на какой-нибудь инструмент командной строки (post circa 1985?) – tripleee

+1

Вот что значит 'argc' и' argv [] '. Тем не менее, я бы предложил следующий совет @ tripleee и использовать библиотеку синтаксического анализа командной строки, чтобы облегчить вашу жизнь. –

ответ

1

Вы можете использовать getoptgetopt_long).

Getopt и getopt_long функции автоматизации некоторых рутинную , участвующих в анализе типичных UNIX параметры командной строки.

См. http://www.gnu.org/software/libc/manual/html_node/Getopt.html для использования и примеры.