如何指定可选标志?

时间:2013-05-25 05:59:36

标签: c printing flags

我必须指定这些标志/参数。如果缺少参数,请使用标志的指定默认值。如果参数无法转换为数值,则使用该参数的默认值。

-eye:如果存在此标志,则接下来的三个参数指定眼睛位置的x,y和z坐标。如果此标志不存在,则眼睛默认为位置< 0.0,0.0,-14.0&gt ;.

-view:如果存在此标志,则接下来的六个参数指定视图矩形的min_x,max_x,min_y,max_y,width和height组件。如果该标志不存在,则视图矩形默认为min_x为-10,max_x为10,min_y为-7.5,max_y为7.5,宽度为1024,高度为768。

-light:如果存在此标志,则接下来的六个参数指定灯光位置的x,y和z坐标以及灯光的r,g和b值。颜色。如果该标志不存在,则灯默认为位置< -100.0,100.0,-100.0>和颜色/强度(1.5,1.5,1.5)。

-ambient:如果存在此标志,则接下来的三个参数指定环境光颜色的r,g和b值。如果该标志不存在,则环境光的颜色默认为(1.0,1.0,1.0)。

我在思考,我是否必须为每个标志创建一个函数?到目前为止,我对如何将其合并到我的代码中感到有点困惑:

#include "commandline.h"

int main(int argc, char const *argv[])
{
   FILE *input;

   input = fopen(argv[1], "r");

   if (input == NULL)
   {
      perror("Error\n");
   }
}

1 个答案:

答案 0 :(得分:0)

你在找这个:

if(argc < NoOfArgumentNeeded){
 fprintf(stderr, "Usage: %s message string", argv[0]);
 return EXIT_FAILURE;
}

您可以单独撰写Usage(),这里有一些很好的例子:(1)A Little C Primer/C Command Line Arguments,(2)Command Line Parameter Parsing

修改

当您想要打印错误消息时,Stderr非常有用

Stderr

  

标准错误流:标准错误流是错误消息和其他诊断警告的默认目标。喜欢   stdout,它通常也默认指向文本控制台   (一般来说,在屏幕上)。

     

stderr可以用作任何需要的函数的参数   FILE类型的参数*期望输出流,如fputs或   fprintf中。