• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Crazyluigi

Como limpar buffer teclado

7 mensagens neste tópico

Boas a todos!!!

Comecei à poucos meses a aprender java e devido a isso existem 1 milhão de duvidas sempre, e como na net nem sempre as respostas são conclusivas queria saber se me podem ajudar nesta minha duvida:

 
          do 
          {
          
          System.out.println(" a : area do quadrado ");
          System.out.println(" b : area do rectangulo ");
          System.out.println(" c : area do circulo ");
          System.out.println(" d : area do triangulo ");
          System.out.println(" e : area do trapezio ");
          System.out.println(" s : Sair ");
          System.out.print(" Insira a opção :");
          opcao = ler.next();
          o = opcao.charAt(0);
          o = Character.toUpperCase(o);
          
          if ( o == 'S')	
	  {
	  	
   		 	System.out.print(" De certeza que quer sair? (Y/N)");
   		 	opcao = ler2.next();
   		 	o = opcao.charAt(0);
          	                          o = Character.toUpperCase(o);
          	if (o == 'Y')
          	{
          		System.exit(0);
          	}
          }
   		 	else 
   		 	{
   		 		do 
          		{
          
         			 System.out.println(" a : area do quadrado ");
          			 System.out.println(" b : area do rectangulo ");
          			 System.out.println(" c : area do circulo ");
          			 System.out.println(" d : area do triangulo ");
          			 System.out.println(" e : area do trapezio ");
          			 System.out.println(" s : Sair ");
          			 System.out.print(" Insira a opção :");
          			 opcao = ler.next();
          			 o = opcao.charAt(0);
          			 o = Character.toUpperCase(o);
          			 if ( o < 'A' || o > 'E')
	{System.out.println(" Opcao Invalida ");}
	  
          		}
          		while ( o < 'A' || o > 'E');

como limpar o buffer do teclado????

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

:-[please!!!!!!!!!!

Tenho de enviar o prog ate mais logo e ainda não percebi pk não dá .....

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Estás a usar a classe Scanner para ler? Experimenta fazer ler.next() ou ler.nextLine().

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

sim, claro...

mas acho que ja dei a volta ao programa e ta a apresentar os menus como quero e com todas as opções... mesmo assim gostava de saber se existe algo parecido com o fflush do c++ em java

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ficou assim:

public static void main (String[] args)
	{
          
          Scanner ler2=new Scanner(System.in);       
          Scanner ler=new Scanner(System.in);
          char o;
          String opcao,opcao2;
          
          do 
          {
          
          System.out.println(" a : area do quadrado ");
          System.out.println(" b : area do rectangulo ");
          System.out.println(" c : area do circulo ");
          System.out.println(" d : area do triangulo ");
          System.out.println(" e : area do trapezio ");
          System.out.println(" s : Sair ");
          System.out.print(" Insira a opção :");
          opcao = ler.next();
          o = opcao.charAt(0);
          o = Character.toUpperCase(o);
         
          
          if ( o == 'S')	
	  {
	  	
   		 	System.out.print(" De certeza que quer sair? (Y/N)");
   		 	opcao2 = ler2.next();
   		 	o = opcao2.charAt(0);
          	o = Character.toUpperCase(o);
          	if ( o == 'Y'  )
          	{
          		System.exit(0);
          	}}
          	else 
          	{	if ( o!= 'N' && o < 'A' || o > 'E')
		{System.out.println(" Opcao Invalida ");}
          	 }}

          while ( o < 'A' || o > 'E');

assim já não me dá problemas a ler as variaveis. OBG na mesma e fico à espera de resposta sobre o fflush e sua equivalência, se houver

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Hmm  :hmm:

Posso estar a dizer uma grande asneira mas poderá ser...System.in.reset?

De qualquer forma, eu sempre fiz os menus dessa ultima maneira que postaste. Tudo dentro de um do-while e nunca tive problemas,  :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O equivalente foi o que eu apresentei. Assim como podes ler a informação que queres usando aqueles 2 métodos, também podes ler o lixo que está no buffer com eles e simplesmente descarta-lo.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora