Strona 1 z 1

[Java] Problemy z odczytywaniem znaków z klawiatury

: 20 lip 2013, o 20:25
autor: damik1318
Witam

Jakiś tydzień temu zacząłem uczyć się Javy i chce zrobić kalkulator
To jest jego kod, Dopiero zaczynam go robić więc wybór opcji narazie jest zbędny
Oraz dopisze że uczę się z książki Herberta Schildta "Java: Przewodnik dla początkujących Wydanie V"

Kod: Zaznacz cały

public class Liczydlo 
{
	public static void main(String args[])
		throws java.io.IOException
		{
			byte select;
			int la, lb;
			System.out.println("1) Dodawanie      2) Odejmowanie 
3)Mnozenie			4)Dzielenie   
5) Pierwiastkowanie");
			System.out.println("Wybierz opcje jaka cie interesuje");
			select = (byte) System.in.read();
			
			System.out.println("Wpisz liczbe a: ");
			la = (int) System.in.read();
			System.out.println("Wpisz liczbe b: ");
			lb = (int) System.in.read();
			
			System.out.println("Wynik to:" + la + lb);

		}
}
Do wprowadzania znaków z klawiatury używam System.in.read()

I mam z tą klawiaturą taki problem że jak osoba korzystająca z programu musi wybrać opcje czyli np. dodawanie czy mnożenie to wszystko działa dobrze ale gdy ma wpisać liczbe a czy b to nie może tego zrobić

Działanie tego programu napisze tu (pogrubione znaki to są te co wpisuje ja):

1) Dodawanie 2) Odejmowanie
3)Mnożenie 4)Dzielenie
5) Pierwiastkowanie
Wybierz opcje jaka cie interesuje
1
Wpisz liczbe a:
Wpisz liczbe b:
Wynik to:1310


Jak widać nie moge wpisać liczby a ani b
I zawsze to 1310 to jakaś losowa liczba
czytalem cos o tym ze jak sie nacisnie Enter to w buforze zostają umieszczone znaki powrotu karetki i wysuwu wiersza więc trzeba je usunąć bla bla bla...

Ale ja tego troche nie rozumiem i chce żebyście mi powiedzieli o co tu chodzi i jak mam to rozwiązac

[Java] Problemy z odczytywaniem znaków z klawiatury

: 20 lip 2013, o 20:57
autor: lemoid
System.in.read()
wydaje mi się, że pobiera char, tylko pojedyńczy symbol.

Dlatego przy wyborze działań się zgadza, natomiast przy intach niekoniecznie. Nie znam javy, takie moje domysły.

[Java] Problemy z odczytywaniem znaków z klawiatury

: 20 lip 2013, o 22:10
autor: Ser Cubus

Kod: Zaznacz cały

import java.util.Scanner;

Opcje:
...
int a;
Scanner in = new Scanner(System.in);
System.out.print("Podaj liczbe ai: ");
a =  in.nextLine();
powinno działać