Bonjour à tous,

J'aimerais construire un programme qui fait ceci:


sleep 5 # je fais attendre le programme pour 5 secondes

#Pendant que le programme attend, je tape une chaîne de caractère au clavier sur le terminal (par exemple "hello") même si je ne dis pas ici au programme qu'il doit inviter l'utilisateur à entrer quelque chose au clavier.

puts "Please scan the serial number of the device"


STDIN.flush # J'efface le standard input buffer pour que le programme ne prenne pas en compte ce que j'ai entré auparavant


comp=gets.chomp # Le programme me demande d'entrer quelque chose au clavier (Par exemple "new"). Je veux juste que le programme considère "new"




Quand j'exécute le programme, le STDIN buffer ne semble pas être effacé. La première chaîne de caractère que j'ai entré au clavier, c'est à dire "hello",semble être toujours présent dans le buffer. donc le programme ne me demande pas d'entrer une chaîne de caractère au clavier comme il devrait le faire. Il considère juste celle que j'ai entré.

Comment faire pour corriger ce problème ? Je n'arrive pas à effacer le STDIN buffer. J'ai essayé iflush, ioflush mais ça n'a pas marché. Comment faire s'il vous plaît ? Merci d'avance.