/* Solutionnaire Tp#1, Session Hiver 2005 Auteurs: M.Lokbani & Étudiant(e)s sections A&B IFT1166 Hiver 2005 Version: 1.02 Révisions: 27-mars -2005 v1.02 M.Lokbani Mise en forme et ajout de commentaires. 15-février-2005 v1.01 M.Lokbani&Étudiants Correction en classe et optimization du codage en fonctions des suggestions des étudiants. 10-février-2005 v1.00 M.Lokbani première ébauche. Description: Ce programme C++ permet de lire de l’entrée standard une série de mots passés en ligne de commande, puis de les afficher par la suite sur la sortie standard dans un format préalablement fixé. Pour ce travail la taille par défaut de la fenêtre d'affichage a été fixée à 20 caractères. Si la chaîne à afficher a une taille inférieure à 20 caractères, le caractère # sera utilisé pour compléter la chaîne pour arriver à la taille totale de 20 caractères. Le format d’affichage doit tenir compte des des justifications suivantes, passées sur la ligne de commande: - g : pour une justification à gauche. La phrase est affichée à gauche, les champs vides à sa droite seront complétés par le caractère #. - d : pour une justification à droite. La phrase est affichée à droite, les champs vides à sa gauche seront complétés par le caractère #. - c : pour une justification au centre. La phrase est affichée au centre et les champs vides à sa droite et à sa gauche seront complétés par le caractère #. Si le nombre de champs vides est un nombre impair, le caractère # en trop sera placé à droite de la phrase. Exemples d'utilisation: tp1.exe g ceci est exemple g donc on demande une justification à gauche de la série de mots qui suit. tp1.exe d ceci est exemple d donc on demande une justification à droite de la série de mots qui suit. tp1.exe c ceci est exemple c donc on demande une justification centrée de la série de mots qui suit. Le programme affiche un message d'erreur si: -1- une des justifications est manquante sur la ligne de commandes. -2- la série de mots est manquante. contact: lokbani@iro.umontreal.ca Copyright (C) 2003 Université de Montréal Département d'informatique et de Recherche Opérationnelle Mohamed Lokbani -- Tous Droits Réservés -- All Rights Reserved -- */ #include #include #include using namespace std; /* Toutes les méthodes relatives à ce travail ont été regroupées dans un seul espace de noms et ceci afin de mieux encadrer ce travail dans une approche orientée objet. */ namespace tp1 { string justification; string phrase; int size_fenetre = 20; int espace_vide; int size_phrase; /* void test_verif(int argc,char* argv[]); Cette fonction permet de: -1- Vérifier que le nombre d'arguments est correct. -2- Les options de formatage sont correctes. Arguments: -1- argc: le nombre d'arguments sur la ligne de commandes. -2- argv: la liste des arguments. */ void test_verif(int argc,char* argv[]){ if (argc < 3){ cout << "Erreur: le nombre d'arguments doit être au moins égal à 3!" << endl; exit(1); } justification = argv[1]; if (justification!="g"&&justification!="d"&&justification!="c"){ cerr << "Erreur: justification inconnue!"<