在程序中包含可选输入?

时间:2015-01-29 03:57:48

标签: c command-line command-line-arguments plaintext ppm

我想知道是否有办法在我的代码中创建可选输入?我正在编写一个代码,用于打印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]);
    }
}

1 个答案:

答案 0 :(得分:1)

您可以使用getopt(和getopt_long)。

  

getopt和getopt_long函数可以自动完成一些杂务   参与解析典型的unix命令行选项。

有关用法和示例,请参阅http://www.gnu.org/software/libc/manual/html_node/Getopt.html