flushing the keyboard input after a pause.

16 visualizaciones (últimos 30 días)
Jon Rozeay
Jon Rozeay el 1 de Nov. de 2022
Respondida: Jon Rozeay el 2 de Nov. de 2022
Hello,
I need to ignore the possible keyboard input during a pause. So for example:
i1 = input(' Enter first number : ')
pause(10)
i2 = input(' Enter second number : ')
I would like to ignore all the number that has been enter during the 10 second break.
So far, i2 will take whatever first number has been enter after i1.
This is driving me crazy thanks for your help,

Respuesta aceptada

Star Strider
Star Strider el 1 de Nov. de 2022
I generally do not use input, preferring inputdlg instead.

Más respuestas (2)

Jan
Jan el 1 de Nov. de 2022
The command window does not offer a way to flush the input buffer. But this window is a bad way to implement a user interface, if a specific behavior is wanted.
Create your own GUI instead. Then you have full control over the focus, the contents of edit fields and the behavior during a pause. The command window is not useful as a general prupose GUI.

Jon Rozeay
Jon Rozeay el 2 de Nov. de 2022
Great thanks a lot Jan and Star Strider, that helps a lot.
So far I have found this "clunky" solution;
i1 = input('Enter #1: ');
pause(5)
delta_time = 0;
while delta_time<0.1
tic
i2 = input('Enter #2: ');
delta_time = toc;
end
because all the number that I will enter during the pause(5) will be immediatly be loaded into i2, so by looking at the time it takes (between tic and toc) I can detect if it was a really answer or not.

Categorías

Más información sobre Desktop en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by