Bonjour,
Avec le script suivant, je souhaite multiplier 2 opérandes et afficher le résultat
en saisissant respectivement 2 et 3 pour 1er operande et 2ieme operande
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 #! /usr/bin/perl system clear; while (1) { print "saisir 1er operande : "; $saisi1=<STDIN> or die; if ($saisi1=="fin") {last} print "saisir 2ieme opreande : "; $saisi2=<STDIN> or die; print $saisi1, 'x' , $saisi2 , '=' , $saisi1*$saisi2; print "\n"; $dur1=5; $dur2=4; print $dur1, 'x' , $dur2 , '=' , $dur1*$dur2; print "\n"; } print "fin du programme multi.pl \n";
et fin pour sortir on obtient :
je souhaite obtenir le résultat sur une ligne soit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 2 x3 =6 5x4=20 fin du programme multi.pl
2x3=6
apparemment, perl semble faire une différence entre le contenu
des variables entrées via <STDIN> et celles entrées en dur.
J’ai essayé sans succès de régler le problème avec la fonction chomp()
Espérant faire sauter le retour chariot. $saisi1=chomp($saisie1).
Mais cela donne le retour de la fonction en l’occurrence 1 , l’affichage
Se fait alors sur une ligne , mais donne :
1x1=1 (ce qui n’est pas faux ! mais pas ce que j’attends).
Merci pour votre aide.
Partager