Dos veces enter al ejecutar en wsl

Re: Dos veces enter al ejecutar en wsl

de Federico Bello Perez -
Número de respuestas: 0
Bien. Lo que pasa es lo siguiente, uso de ejemplo el '2+2=' (voy a ignorar la parte de los cálculos). El primer 2 va a quedar guardado en el primer read(a), como a es distinto de '=' entra en el while, por lo que el '+' queda guardado en a y el '2' queda en c. La variable a sigue siendo distinta al centinela, por lo que el read(a,c) se vuelve a ejecutar. En 'a' queda el '=' y, al presionar enter, en lugar de estar ingresando todo el input, el enter va a quedar guardado en 'c', ya que es un char. Recién cuando ejecutas el segundo enter se ingresan bien todos los datos y termina el programa.
Resumiendo un poco, para que ande bien tenés que cambiar los reads para que siempre que leas un '=' salga del while, y no que haga otra lectura más. Pique: en general está bueno hacer la lectura de la variable con la que vas chequeando el centinela al final del cuerpo del while o del repeat.

Espero se haya entendido, cualquier cosa avisa.