/// Uses getopt to read in arguments. void get_args(int *argc, char ***argv) { int c; char *err; ifstream vdata; while ((c = getopt(*argc, *argv, "mwxrfhos:e:l:")) != -1) { switch (c) { case 'm': stage |= metadata; break; case 'w': stage |= wt_coeff; break; case 'x': stage |= reconstruct; break; case 'l': iwt_level = strtol(optarg, &err, 10); if (*err) usage(); break; case 'r': reduce = true; break; case 's': fields = string(optarg); break; case 'o': one_line=true; break; case 'f': translate = true; break; case 'e': { translate = true; string exe(optarg); if (!exists(exe)) { cerr << exe << ": No such file or directory." << endl; exit(1); } translator.set_executable(exe); } break; case 'h': default: usage(); break; } } // adjust params *argc -= optind; *argv += optind; }