[PERL]getc

getc [PERL] - Perl - Programmation

Marsh Posté le 02-05-2002 à 14:27:18    

bonjour,
 
Un petit souci avec la lecture sur STDIN en PERL :
 
Pour lire un caractere au clavier, soit je fais :
$var=getc;
soit :
read STDIN, $var, 1;
 
Ces 2 ecritures dans l'utilisation suivante posent probleme :
 
while (1){
 print "Do you want to quit ?(Y/N)\n";
 if (getc eq 'Y';){
  last;}
 }
print "end\n";
 
 
a savoir qu'une fois sur 2, le getc passe a la trappe et la boucle continue comme si le if n'existait pas. Une chute d'écran donnerait ceci :
 
Do you want to quit ?(Y/N)
N
Do you want to quit ?(Y/N)
Do you want to quit ?(Y/N)
N
Do you want to quit ?(Y/N)
Do you want to quit ?(Y/N)
Y
end
 
Pourquoi ca marche qu'une fois sur 2 ?

Reply

Marsh Posté le 02-05-2002 à 14:27:18   

Reply

Marsh Posté le 02-05-2002 à 15:52:55    

essaye ceci :
 
while (1){  
print "Do you want to quit ?(Y/N)\n";  
chomp($_ = <STDIN> );
if ($_ =~ /Y/){  
 last;}  
}  
print "end\n"

 

[jfdsdjhfuetppo]--Message édité par Aricoh le 02-05-2002 à 15:53:18--[/jfdsdjhfuetppo]


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO -> Google Pixel 9 PRO XL
Reply

Marsh Posté le 02-05-2002 à 17:27:09    

merci, c aussi la solution que j'ai trouvé ;=)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed