我想知道是否有办法在我的代码中创建可选输入?我正在编写一个代码,用于打印480x480纯文本图像的RGB值。代码应该允许我以任何顺序输入4个可选值 - -r x 将每个像素的红色分量的sin缩放为x, -g x 与-r相同,除了绿色组件 -b x 做同样的事,但用蓝色 -s n 指定整数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 :(得分:1)
您可以使用getopt
(和getopt_long
)。
getopt和getopt_long函数可以自动完成一些杂务 参与解析典型的unix命令行选项。
有关用法和示例,请参阅http://www.gnu.org/software/libc/manual/html_node/Getopt.html。