53 #include <visp3/core/vpDebug.h> 54 #include <visp3/io/vpParseArgv.h> 60 #define GETOPTARGS "d:f:i:h" 62 void usage(
const char *name,
const char *badparam,
int i_val,
float f_val,
double d_val);
63 bool getOptions(
int argc,
const char **argv,
int &i_val,
float &f_val,
double &d_val);
76 void usage(
const char *name,
const char *badparam,
int i_val,
float f_val,
double d_val)
79 Parsing command line arguments example.\n\ 82 %s [-i <integer>] [-f <float>] [-d <double> [-h]\n\ 101 fprintf(stderr,
"ERROR: \n" );
102 fprintf(stderr,
"\nBad parameter [%s]\n", badparam);
118 bool getOptions(
int argc,
const char **argv,
int &i_val,
float &f_val,
double &d_val)
125 case 'd': d_val = atof(optarg_);
break;
126 case 'f': f_val = (float) atof(optarg_);
break;
127 case 'i': i_val = atoi(optarg_);
break;
128 case 'h': usage(argv[0], NULL, i_val, f_val, d_val);
return false;
break;
131 usage(argv[0], optarg_, i_val, f_val, d_val);
return false;
break;
135 if ((c == 1) || (c == -1)) {
137 usage(argv[0], NULL, i_val, f_val, d_val);
138 std::cerr <<
"ERROR: " << std::endl;
139 std::cerr <<
" Bad argument " << optarg_ << std::endl << std::endl;
147 main(
int argc,
const char ** argv)
155 double d_val = 3.1415;
158 if (getOptions(argc, argv, i_val, f_val, d_val) ==
false) {
162 cout <<
"Your parameters: " << endl;
163 cout <<
" Integer value: " << i_val << endl;
164 cout <<
" Float value: " << f_val << endl;
165 cout <<
" Double value: " << d_val << endl << endl;
166 cout <<
"Call " << argv[0]
167 <<
" -h to see how to change these parameters." << endl;
172 std::cout <<
"Catch a ViSP exception: " << e << std::endl;
error that can be emited by ViSP classes.
static bool parse(int *argcPtr, const char **argv, vpArgvInfo *argTable, int flags)