Cliquer ici pour imprimer

Dernière modification : 28/04/2020 à 09:01

Passer des paramètres à un programme et les gérer, ajout du serpent et déplacements automatiques

Les arguments du main

Soit la ligne de commande :

$> ./a.out toto tata 8 9 10

Comment le programme peut il récupérer les informations supplémentaires passées sur la ligne de commande ? Avec un tableau de chaines de caractères ! Donc un entier donnant la taille du tableau, puis un tableau à deux dimensions de caractères. Le "vrai" prototype de la fonction main() est donc :

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

Dans notre exemple de ligne de commande, lorsque le programme démarre, les variable sont initialisées ainsi :

argc : 6
argv[0] : "./a.out"
argv[1] : "toto"
argv[2] : "tata"
argv[3] : "8"
argv[4] : "9"
argv[5] : "10"
$> ./a.out
./a.out
$> cp a.out toto.exe
$> ./toto.exe
./toto.exe

Gestion propre des différents cas possibles : getoptlong()

Ecrire une programme qui accepte plusieurs type d'option et dans n'importe quel ordre peut vite devenir un cauchemard si vous essayez de tout faire vous même. Heureusement il existe des bibliothèques permettant d'écrire du code plus propre.

Lisez cette page jusqu'au point 2.1.3 inclus.

Testez les exemples.

Retour au jeu du serpent

Nous voulons maintenant ajouter à la grille notre serpent

Bravo, il y a maintenant un serpent à l'écran. Mais il ne fait rien. Il va falloir qu'il puisse se déplacer.

Rendu

Dans un répertoire nommé login_tp3 copiez vos .c, makefile et .h. Vous pouvez y ajouter un fichier texte README si vous avez des choses à expliquer à joindre à votre rendu. Depuis le répertoire parent, tapez la commande tar czf login_tp3.tgz login_tp3. Déposez sur blackboard le fichier obtenu.