/* A constructor which is given a list of possible options. Arguments are given in as a string which is processed (divided into atoms) by constructor. If rupUnrec=true, unrecognized options are reported. */ TProgArguments::TProgArguments(const string &poss_options, const string &line, bool repUnrec, bool anallowSpaces) : possibleOptions(), options(), unrecognized(), direct(), allowSpaces(anallowSpaces) { findPossibleOptions(poss_options); vector<string> optionsList; string2atoms(line, optionsList); defile(optionsList); process(optionsList); if (repUnrec) reportUnrecognized(); }
/* A constructor which is given a list of possible options and standard C-like fields with number of arguments and an array of char * pointers to arguments. If rupUnrec=true, unrecognized options are reported. */ TProgArguments::TProgArguments(const string &poss_options, int argc, char *argv[], bool repUnrec, bool parenth, bool anallowSpaces) : possibleOptions(), options(), unrecognized(), direct(), allowSpaces(anallowSpaces) { findPossibleOptions(poss_options); vector<string> optionsList; if (argc>1) if (parenth) { string cline(argv[1]); for(int i=2; i<argc; ) { string as(argv[i++]); if (as.find(' ')==string::npos) cline+=' '+as; else cline+=" \""+as+"\""; } string2atoms(cline, optionsList); } else while(--argc) optionsList.push_back(*(++argv)); defile(optionsList); process(optionsList); if (repUnrec) reportUnrecognized(); }
/*****Programme principal*****/ int main() { file f; pile p; p = malloc (sizeof(struct e_pile)); //Allocation de mémoire pour la pile f = malloc (sizeof(struct e_file)); //Allocation de mémoire pour la file init_pile(&p); //Initialisation de p init_file(&f); //Initialisation de f /*Manipulation des file*/ printf("\nManipulation des files :\n\n"); /**Insertion dans la file**/ enfile(&f,5); //Insertions de la valeur 5 affiche_file (f); enfile(&f,4); //Insertions de la valeur 4 affiche_file (f); enfile(&f,3); //Insertions de la valeur 3 affiche_file (f); enfile(&f,2); //Insertions de la valeur 2 affiche_file (f); enfile(&f,1); //Insertions de la valeur 1 affiche_file (f); enfile(&f,0); //Insertions de la valeur 0 /**Partie suppression**/ defile(&f); //Suppressions dans la file affiche_file (f); defile(&f); //Suppressions dans la file affiche_file (f); defile(&f); //Suppressions dans la file affiche_file (f); defile(&f); //Suppressions dans la file affiche_file (f); /**Réinsertion dans la file**/ enfile(&f,6); //Insertions de la valeur 6 enfile(&f,7); //Insertions de la valeur 7 enfile(&f,8); //Insertions de la valeur 8 affiche_file (f); /*Manipulation des pile*/ printf("\nManipulation des piles :\n\n"); empile(&p,1); //Insertions de la valeur 0 affiche_pile(p); empile(&p,1); //Insertions de la valeur 1 affiche_pile(p); empile(&p,2); //Insertions de la valeur 2 affiche_pile(p); empile(&p,3); //Insertions de la valeur 3 affiche_pile(p); empile(&p,4); //Insertions de la valeur 4 affiche_pile(p); empile(&p,5); //Insertions de la valeur 5 affiche_pile(p); depile(&p); //Suppressions dans la pile affiche_pile (p); depile(&p); //Suppressions dans la pile affiche_pile (p); depile(&p); //Suppressions dans la pile affiche_pile (p); depile(&p); //Suppressions dans la pile affiche_pile (p); free (f); //Libération de mémoire pour la file f free (p); //Libération de mémoire pour la pile p return 0; }