3 Quelques éléments d'aide
Les quelques indications données ici vous seront utiles. Ces
indications ne sont pas complètes. Il vous faudra consulter le manuel
en ligne pour une information plus complète.
Lecture de l'entrée standard
La lecture d'une ligne sur l'entrée standard se fait par la fonction
fgets() :
#include <stdio.h>
char * fgets(char * s, int size, FILE * stream);
qui lit au plus size-1 caractères depuis le flux
stream et les place dans le tableau s. Le flux
associé à l'entrée standard est identifié par la valeur
stdin définie dans stdio.h. La lecture s'arrête
après EOF ou un retour-chariot.
Production sur la sortie standard et la sortie d'erreur
De la même manière que printf() produit un message sur la
sortie standard, la fonction
#include <stdio.h>
int fprintf(FILE *stream, const char *format, ...);
produit un message sur le flux désigné par le paramètre
stream. Deux valeurs de type FILE * sont définies dans
stdio.h pour désigner la sortie standard et la sortie
d'erreur, stdout et stderr. Ainsi
printf(...) est équivalent à fprintf(stdout, ...).
Comparaison de chaînes de caractères
Les chaînes de caractères ne peuvent être directement comparées avec
un opérateur du langage C. On utilise la fonction
#include <string.h>
int strcmp(const char *s1, const char *s2);
qui retourne la différence entre les premiers caractères différents
des chaîne et s2. En cas d'égalité, strcmp()
retourne une valeur nulle (donc une valeur fausse, attention).
Recherche de sous-chaînes
La fonction
#include <string.h>
char *strstr(const char *big, const char *little);
recherche la chaîne de caractères little dans la chaîne de
caractères big. En particulier, elle retourne
-
NULL ssi little n'apparaît pas dans
big ;
- big ssi big débute par little.
Terminaison du programme
La fonction
#include <stdlib.h>
void exit(int status);
termine l'exécution du programme en cours. La valeur de
status est retournée à l'environnement. La norme C définit
les valeurs EXIT_SUCCESS (0) et EXIT_FAILURE comme
des valeurs possible de status.
Lecture des paramètres de la ligne de commande
Le prototype de la fonction main() peut être complété pour
accéder aux paramètres de la ligne de commande :
int main(int argc, char *argv[]);
La valeur de argc donne le nombre de paramètres ayant été
passés à la commande (y compris le nom du programme). Le tableau
argv contient les valeurs de ces paramètres. Essayez le
programme d'exemple suivant :
#include <stdio.h>
#include <stdlib.h>
int
main (int argc, char *argv[])
{
int i;
fprintf(stderr, " argc = %d\n", argc);
for (i=0; i<argc ; i++) {
fprintf(stderr, "argv[%d] = %s\n", i, argv[i]);
}
exit(EXIT_SUCCESS);
}
Les arguments sont considérés comme des chaînes de caractères. On
utilisera la fonction
#include <stdlib.h>
int atoi (const char *str);
pour convertir un argument de la commande (i.e. un élément du tableau
argv) qui en une valeur entière.