Formations à l'informatique et à l'électronique

Auteur : SD
Créé le : 03-12-2022

Langage C - Projet "Ping Them All" - Partie 3

Retour vers la partie 2 La suite (partie 4)

Version 4 – Utilisation des paramètres argc et argv de la fonction main

Jusqu’à maintenant l’en-tête de notre fonction main était :

int main (void)

Ceci indique que notre programme renvoie un entier (int) au système d’exploitation. 0 si l’exécution s’est déroulée normalement ou un code d’erreur.

Nous souhaitons pouvoir passer des paramètres à notre programme :

Utilisé sans paramètre, notre programme lira par défaut le fichier "hosts-list.txt".

Comment utiliser les paramètres argc et argv ?

L’en-tête de notre fonction main va devenir :

int main (int argc, char* argv[])

Avec :

Exemple de code qui affiche le nom du programme, le nombre de paramètres ainsi que tous les paramètres reçus :

#include <stdio.h>
#include <windows.h>

int main(int argc, char* argv[])
{   
    // Affiche le nom du programme
    printf("\nNom du programme : %s", argv[0]);

    // Affiche le nombre de paramètres reçus
    printf("\n\nLe programme a recu %d parametre(s).", argc);

    printf("\nLes parametres recus sont : ");
    // Affiche tous les paramètres reçus
    for(int i = 0 ; i < argc ; i++)
        printf("\n\t- %s", argv[i]);

    printf("\n\n");

    return 0;
}

Résultats obtenus :

Langage C main argc argv exemple

Modifications à apporter à votre programme

  1. Afficher l’aide si le programme reçoit l’option "/?" en paramètre. Vous vous inspirerez de l’affichage de l’aide des commandes Windows existantes. Par exemple en observant l’affichage produit par "del /?".
  2. Si aucun paramètre n’est passé en dehors du nom du programme le fonctionnement précédent sera conservé (lecture du fichier "hosts-list.txt"). Vous contrôlerez que ce fichier existe et qu’il n’est pas vide avant de l’utiliser. S’il n’existe pas un message d’erreur informera l’utilisateur et le programme renverra le code d’erreur 1. S’il est vide un message d’erreur informera l’utilisateur et le programme renverra le code d’erreur 2
  3. Si le programme reçoit les paramètres "/f" suivie par le nom du fichier texte (.txt) qui contient la liste des machines. Il utilisera le fichier reçu en paramètre à la place de "hosts-list.txt". Il faudra contrôler que le fichier reçu en paramètre existe et qu’il n’est pas vide avant de l’utiliser. S’il n’existe pas un message d’erreur informera l’utilisateur et le programme renverra le code d’erreur 1. S’il est vide un message d’erreur informera l’utilisateur et le programme renverra le code d’erreur 2
  4. L’option "/v" qui affichera le numéro de version de notre programme.
  5. Si le(s) paramètres reçu(s) ne correspond(ent) pas à ceux mentionnés ci-dessous le programme affichera un message d’erreur suivi de l’aide affiché normalement avec le paramètre "/?". Le programme renverra alors le code d’erreur 3

Aide

Vous devez créer un fichier ".bat" de test qui permettra de tester votre programme dans tous les cas d’utilisations possibles.

Faire constater au professeur

Retour vers la partie 2 La suite (partie 4)


Vous avez apprécié cet article ? Partagez le !