Developpez.com - Autres
X

Choisissez d'abord la catégorieensuite la rubrique :

Sommaire > Les entrées/Sorties conversationnelles
        L'entrée standard
        Un diamant dans Perl
        Ecrire sur la sortie standard
        La sortie standard

        


L'entrée standard
auteur : GLDavid
Au cours de vos programmes, vous aurez sans doute besoin de paramètres propres à l'utilisateur. Celui-ci aura alors à rentrer au programme ses propres données. Cette interaction, dans sa forme la plus simple, s'effectue via l'entrée standard soit le clavier. Pour avoir accès à ce qui est rentré via le clavier, vous aurez ainsi besoin de manipuler l'opérateur STDIN :

print "Rentres une phrase :\n"; $in = <STDIN> chomp($in); print "$in\n";
Dans ce programme très simple, l'utilisateur devra rentrer une phrase ou un chiffre qui sera validé par l'appui sur la touche Entrée. Supposons que l'utilisateur ait rentré le chiffre 2. La variable scalaire contient ainsi pour le moment "2\n". Le caractère de retour chariot (la touche entrée) ne nous intéresse pas. D'où l'appel de la fonction chomp qui enlève tout caractère de retour chariot. Le programme affiche enfin le contenu de la variable scalaire $in.


Un diament dans Perl
auteur : GLDavid
Nous avons vu tout à l'heure que l'opérateur (ou handle, cf Les Fichiers) STDIN était contenu dans un opérateur dit opérateur diamant <>. Cet opérateur est trèes utile notamment pour la manipulation des arguments fournis à votre programme. Un argument, pour un programme Perl, désigne un fichier que vous passez en paramètre à votre programme. Votre code lira ainsi le fichier donné :

$perl mon_programme.pl gldavid djibril gnux 2eurocents
Notre programme Perl va devoir lire chacun des fichiers passés en argument et afficher leur contenu sur la sortie standard :

foreach $ligne (<>) { chomp ($ligne); print "$ligne\n"; }
Dans notre boucle, nous lisons chacun des fichiers passés séquentiellement. L'opérateur chomp enlève tout caractère de retour de chariot et nous affichons sur la sortie standard la ligne en cours du fichier.


Ecrire sur la sortie standard
auteur : GLDavid
La sortie standard détermine le média de sortie avec lequel votre programme affichera une information à vos utilisateurs. De manière commune, la sortie standard sera votre écran. Dans nos précedents codes sources, nous avons vu que pour afficher quelque chose, nous avions recours à la fonction print. Cette fonction prend en argument une chaîne de caractère qu'elle affichera sur la sortie standard. Mais elle permet aussi de vous afficher le contenu de variables :

$out = "Bonjour Maître.\n"; print "$out\n"; print "Voici mes maîtres :\n"; @tableau = qw /GLDavid Gnux Djibril 2Eurocents/; print "@tableau";
Enfin, dans votre chaîne de caractère fournie à print, rien ne vous empêche de procéder à des concaténations.


L'entrée standard
auteur : GLDavid
Chers pratiquants du C, n'ayez pas peur de Perl ! Vous y retrouverez la première fonction que vous avez utilisé à vos début : printf ! Pour les non Cistes (codeurs en C), printf est une fonction permettant d'afficher, certes, sur la sortie standard mais aussi de formater ce que l'on souhaite imprimer. Prenons l'exemple d'un chiffre à virgule. Naturellement, pour certains de ces chiffres, on ne veut retenir que quelques chiffres après la virgule :

$taux = 6.55957; print "Rentrez une valeur en euros :\n"; $euro = <STDIN>; chomp($euro); $franc = $euro*$taux; printf "%.3f euros vaut %.3f francs.\n",$euro, $franc;
Dans cet exemple, nous demandons à l'utilisateur de rentrer un chiffre correspondant à une valeur en euros. Au préalable, nous aurons défini le taux de change dans la variable scalaire $taux. La conversion s'effectue et nous affectons à la variable $franc le résultat de la conversion. Notre ligne la plus intéressante est la dernière. Plutôt que d'appeler print, nous vouons seulement retenir pour chacune de ces valeurs ($euro et $franc) les 3 derniers chiffres après la virgule. A l'aide du drapeau %.3f, nous indiquons à printf que pour les variables $euro et $franc nous ne souhaitons afficher que la partie entière ainsi que les 3 chiffres suivants la virgule. Notez enfin que vous aurez à déterminer pour chaque variable un drapeau correspondant. Quelques drapeaux :

Drapeau Signification
%d Affiche un entier
%g Notation automatique décimale, entière ou exponentielle
%.3f Affiche un flottant avec 3 chiffres après la virgule
%x Affiche un héxadécimal
%o Affiche un octal
%s Affiche une chaîne de caractères
%10s Affiche une chaîne de caractère avec une justification de 10 espaces blancs vers la droite
%-10s Affiche une chaîne de caractère avec une justification de 10 espaces blancs vers la gauche

        

Consultez les autres F.A.Q's

Ce document issu de www.developpez.com est soumis à la licence GNU FDL traduit en français ici
Permission vous est donnée de distribuer, modifier des copies de cette page tant que cette note apparaît clairement.
Contacter le responsable de la rubrique Autres