Java Anfängerfrage: Stdin?

Don_Pazo

Erfahrenes Mitglied
Hallo,
ich bin Anfänger unter Java. Ich lese gerade einen Tutorial und da stand folgendes Beispiel:

Code:
import java.io.*;

class Multiply
{
    public static void main(String[] args) throws IOException
    {
        System.out.println("Bitte ersten Faktor eingeben:");
        int m1 = Stdin.readInt();
        System.out.println("Bitte zweiten Faktor eingeben:");
        int m2 = Stdin.readInt();
        System.out.println(m1 + "x" + m2 + "=" + m1*m2);
    }
}

Ich habe es in meinen Eclipse (unter Windows ) eingetippt. Dann kommt aber die Fehlermeldung:
Exception in thread "main" java.lang.Error: Unaufgelöstes Kompilierungsproblem:
Stdin kann nicht aufgelöst werden

at JVariablenLernen.main(JVariablenLernen.java:6)

Vielleicht bin ich zu blöd zum tippen :))))
Könnte mir bitte jemand verratten, wo das Fehler liegt ?
 
Hallo,

sieht so aus, als wäre das Stdin ein Objekt der Klasse DataInputStream.
Wenn du nun als erste Zeile in deiner Main-Methode folgendes einfügst, sollte es funktionieren:

Code:
DataInputStream Stdin = new DataInputStream(System.in);



mfg
gello
 
Hi,
falls du Java 1.6 beta nutzen solltest, kannst du zum einlesen von der Konsole auch folgenden Funktion nutzen.

Code:
System.console().readLine();
 
Hi!

du kannst natürlich auch folgendes machen, wenn nicht J1.6 verwendet wird.

Code:
public static void main( String[] args ) {
		byte[] buffer = new byte[255];
		int read = 0; 
		
		try {
			read = System.in.read( buffer );
		} catch (IOException e) {
			e.printStackTrace();
		}

		System.out.println( new String( buffer, 0, read ) );
}

der bytearray ist der buffer, wie der name schon sagt, in dem die eingaben gespeichert wreden. read ist die anzahl der eingegebenen zeichen (die größe des buffers muss ja nicht voll ausgeschöpft werden). ist die eingabe mittels enter bestätigt worden, kannst du den buffer, startend bei 0 und endend an der position read, einfach mit System.out ausgeben.

hoffe das hilft dir weiter.

Gruß
TOM
 
Zurück