benutzereingabe
-
hallo normalerweise bschäftige ich mich mit c++, allerdings bin ich nun gezwungen java zu lernen ...
nun möchte ich eine konsolenanwedung schreiben die eine zahl einliest und mit der weiterrechnet
int x; cin >> x;
wäre in c++ ganz einfach allerdings in java lese ich immer wieder was wie
BufferedReader ...
ist das der in java übliche weg oder gibts einfachere methoden?
-
Am einfachsten ist vermutlich, wenn du einen
Scanner
benutzt. So kommst du immerhin schon nahe an dascin
heran, zumindest was die Funktionalität betrifft.Scanner cin = new Scanner(System.in); int bla = cin.nextInt();
MfG
~btw ich komme auch vom C++ her und muss mich nun mit Java auseinandersetzen, also haut mich ma nicht gleich falls ma was nicht stimmt :p~
-
BufferedReader stdIn = new BufferedReader( new InputStreamReader( System.in ) ); int a = Integer.parseInt( stdIn.readLine() );
bis auf die einmalige Deklaration des BufferedReaders hast du auch nur eine Zeile, also zu verkraften.
Um Fehlerkontrolle kommst du auch bei C++ nicht herum
-
ich wollte kein neues Thema eröffnen, deswegen schreib ich meine Frage mit hier rein.
Ich möchte jetzt keine Integer Zahlen oder Strings einlesen, sondern double Werte. Ich habe in der API nachgeschaut und BufferedReader nimmt bei readline() nur Strings und bei read() nur Integer. Wie könnt ich den BufferedReader von zwutz umschreiben, damit ich Double Zahlen eingeben kann? Als Fehler steht unter Eclipse: "The method is readline() is undefined for the type BufferedReader"
Ich habe es zurzeit so geschrieben:
BufferedReader stdIn = new BufferedReader (new InputStreamReader (System.in)); double a = Double.parseDouble( stdIn.readline());
-
readline()
Eher readLine()Kommt davon wenn man ohne autocompletion arbeitet.
-
upps ja stimmt, danke. ich fang grad erst an mit Java und bei Ansi C ging es manchmal auch ohne, das ich auf die Groß- und Kleinschreibung achten muss. Ich habe jetzt noch ne stunde rumgelesen und hin und her und nun funktioniert es. Ich habe ein Funktion gebastelt und diese hatte ich erst in der main Methode, aber dann habe ich sie über die meingeschrieben und schon ging der Fehler bei readLine() weg. bei mir sieht es jetzt so aus:
public static double Input() throws IOException { BufferedReader stdIn = new BufferedReader (new InputStreamReader (System.in)); double a = Double.parseDouble(stdIn.readLine()); return a; } public static void main(String[] args) throws IOException { ....
vielleicht hilft es dem einen oder anderen auch
-
KG21 schrieb:
BufferedReader nimmt ... bei read() nur Integer.
Mit read() wird durch einen BufferedReader auch kein Integer eingelesen,
sondern der return-Wert ist der ASCII-Wert des eingelesenen Characters.
-
KG21 schrieb:
upps ja stimmt, danke. ich fang grad erst an mit Java und bei Ansi C ging es manchmal auch ohne, das ich auf die Groß- und Kleinschreibung achten muss. Ich habe jetzt noch ne stunde rumgelesen und hin und her und nun funktioniert es. Ich habe ein Funktion gebastelt und diese hatte ich erst in der main Methode, aber dann habe ich sie über die meingeschrieben und schon ging der Fehler bei readLine() weg. bei mir sieht es jetzt so aus:
public static double Input() throws IOException { BufferedReader stdIn = new BufferedReader (new InputStreamReader (System.in)); double a = Double.parseDouble(stdIn.readLine()); return a; } public static void main(String[] args) throws IOException { ....
vielleicht hilft es dem einen oder anderen auch
Was ist bitte an der Scanner Klasse so falsch?
scanner = new Scanner(System.in); double d = scanner.nextDouble(); int i = scanner.nextInt(); String s = scanner.next(); // usw