# Eingabe in Console als Variable



## zwieb4ck (11. Sep 2006)

Hallo!

Ich bin seit kurzem von C++ auf Java umgestiegen, da mich eine neue Sprache gereizt hat.

Nur ist der einstieg nicht gerade einfach, wie ich finde.

Ich möchte jetzt eine kleine Application schreiben, die eine Eingabe verarbeitet.

Wenn ich mich nicht irre ist der Code unter C++ (ist auch schon wieder 2 jahre her, dass ich damit gearbeitet habe) in etwa so:


```
std::cout <<"Bitte eine Zahl eingeben\n";
std::cin >> zahl;
```

Gibt es sowas auch für Java?

Liebe Grüße
zwieb4ck


----------



## The_S (11. Sep 2006)

```
int zahl = 0;
try {
    BufferedReader buffy = new BufferedReader(new InputStreamReader(System.in));
    System.out.println("Bitte eine Zahl eingeben");
    zahl = Integer.parseInt(buffy.readLine());
}
catch (IOException e) {
    System.out.println("Eine IO Exception ist aufgetreten");
    e.printStackTrace();
}
catch (NumberFormatException e) {
    System.out.println("Es wurde keine Zahl eingegeben");
}
```


----------



## hupfdule (11. Sep 2006)

```
System.in.read()
```
 Siehe http://java.sun.com/j2se/1.5.0/docs/api/java/io/PrintStream.html


----------



## zwieb4ck (11. Sep 2006)

Danke erstmal für die schnelle Hilfe.

Der Code von Hobbit im Blutrausch wird bei mir in 5 Fällen in Eclipse als fehler markiert.

Die Funktion System.in.read() funktioniert weder in form von var = System.in.read(); noch als System.in.read(var);

Was genau mache ich falsch?


----------



## The_S (11. Sep 2006)

Zuerst einmal, wenn du Fehler hast, dann sag welche. Das erleichtert es usn ungemein dir zu helfen  . Ansonsten denke ich mal du wirst das package java.io nicht importiert haben => Bei Eclipse einfach Rechte Maustaste => Source => Organize Imports


----------



## SlaterB (11. Sep 2006)

dass Java-Programme Importe benötigen ist dir neu?


```
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {

    /**
     * @param args
     */
    public static void main(String[] args) {
        int zahl = 0;
        try {
            BufferedReader buffy = new BufferedReader(new InputStreamReader(System.in));
            System.out.println("Bitte eine Zahl eingeben");
            zahl = Integer.parseInt(buffy.readLine());
        } catch (IOException e) {
            System.out.println("Eine IO Exception ist aufgetreten");
            e.printStackTrace();
        } catch (NumberFormatException e) {
            System.out.println("Es wurde keine Zahl eingegeben");
        }
        System.out.println("Ende, zahl: "+zahl);
    }

}
```

mit System.in.read() ist das ganze gar nicht so einfach,
da wird zunächst mal nur ein byte oder so eingelesen (siehe API!),

für einstellige Zahlen klappt es mit einem kleinen Trick, an die Zahl zu kommen


```
import java.io.IOException;

public class Main {

    /**
     * @param args
     */
    public static void main(String[] args) {
        int zahl = 0;
        try {
            System.out.println("Bitte eine Zahl eingeben");
            zahl = System.in.read();
            zahl = zahl - 48;
        } catch (IOException e) {
            System.out.println("Eine IO Exception ist aufgetreten");
            e.printStackTrace();
        } catch (NumberFormatException e) {
            System.out.println("Es wurde keine Zahl eingegeben");
        }
        System.out.println("Ende, zahl: " + zahl);
    }

}
```

nimm also lieber die erste Variante,

-----

in jedem Fall solltest du dir angewöhnen, was anderes als 'funktioniert nicht' zu antworten,
da weiß ja normalerweise niemand was mit anzufangen außer 'doch funktioniert'


----------



## zwieb4ck (11. Sep 2006)

Es ist mir nicht neu, dass Importe benötigt werden, nur habe ich nicht wirklich daran gedacht. 

Danke für eure Hilfe. Es ist jetzt alles soweit funktionsbereit.


----------



## Leroy42 (11. Sep 2006)

zwieb4ck hat gesagt.:
			
		

> Was genau mache ich falsch?


Das Java-Terrain als Einzelkämpfer erkunden zu wollen.

Schnapp' dir ein Tutorial (kostenlos im Netz) und arbeite dich
zumindest durch die Einstiegskapitel durch!


----------



## Wildcard (11. Sep 2006)

Java Programme benötigen keine Imports. FQNs sind theoretisch völlig ausreichend.


----------



## Leroy42 (11. Sep 2006)

Wildcard hat gesagt.:
			
		

> FQNs sind theoretisch völlig ausreichend.



FQNs?  :shock:


----------



## Leroy42 (11. Sep 2006)

Ahh! Schon klar: *F*ully *Q*ualified *N*ames


----------

