[Java] Problemy z odczytywaniem znaków z klawiatury

damik1318
Użytkownik
Użytkownik
Posty: 13
Rejestracja: 25 lut 2013, o 16:44
Płeć: Mężczyzna
Lokalizacja: Rzeszów
Podziękował: 8 razy

[Java] Problemy z odczytywaniem znaków z klawiatury

Post 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
lemoid
Użytkownik
Użytkownik
Posty: 199
Rejestracja: 24 maja 2012, o 23:36
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 5 razy
Pomógł: 30 razy

[Java] Problemy z odczytywaniem znaków z klawiatury

Post 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.
Ser Cubus
Użytkownik
Użytkownik
Posty: 1406
Rejestracja: 6 maja 2012, o 22:46
Płeć: Mężczyzna
Lokalizacja: Polska
Podziękował: 107 razy
Pomógł: 145 razy

[Java] Problemy z odczytywaniem znaków z klawiatury

Post 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ć
ODPOWIEDZ