# Ausgabe Problem System.console().printf()



## Nightfall (27. Nov 2009)

Hey Leute,

habe gerade angefangen Java zu lernen und benutze dazu das Buch (Kompendium)Java 6. Dort wird mir empfohlen zur Ausgabe den Befehl System.console().printf() zu benutzen. Dazu stellt das Buch auch ein Beispiel-Programm mit Eingabe zur Verfügung. Wenn ich versuche, das Programm auszuführen erhalte ich jedoch die Fehlermeldung "The method printf(String, Object[]) in the type Console is not applicable for the arguments (String)".
Was kann ich tun damit das funktioniert? Hoffe ihr könnt mir helfen.

mfg Nightfall


----------



## yoyo (27. Nov 2009)

Anscheinend ist der befehl 

```
System.console().printf()
```
nur für Strings und Obejektfelder 
Ich persöhnlich kenne ihn nicht,
als ich angefangen habe hab ich immer 

```
System.out.println(String);
```
benutzt


----------



## Nightfall (27. Nov 2009)

Ja, dieser Befehl wird auch genannt, aber in dem Buch wird mir empfohlen den anderen befehl zu benutzen, da System.out keine Umlaute unterstützt.

hier mal das Beispielprogramm

```
import java.io.*;

public class Eingabe {
    
   public static void main(String[] args) {
      String name;
      int geburtsjahr;
   
      // Objekt für Konsole beschaffen
      Console cons = System.console();
     
      // Daten ausgeben und einlesen  
      cons.printf("\n");
      cons.printf(" Geben Sie Ihren vollständigen Namen ein: ");
      name = cons.readLine();

      cons.printf(" Geben Sie Ihr Geburtsjahr ein: ");
      String eingabe = cons.readLine();
      geburtsjahr = Integer.parseInt(eingabe);
      cons.printf("\n");

      
      cons.printf(" %1$s, %2$d war ein sehr guter Jahrgang!",
                         name, geburtsjahr);
      cons.printf("\n");
     }   
}
```

soweit ich weiß sollten auch alle Ausgaben Strings sein


----------



## SlaterB (27. Nov 2009)

die Methode lautet
public Console printf(String format, Object... args)
... ist eine recht neue Erscheinung in Java, funktioniert erst ab Version 1.5,

dass du die Klasse Console hast, zeigt, dass deine Java-Version ausreicht (gibts ab 1.6),
allerdings ist der Compiler anscheinend so eingestellt, dass er nur Sprach-Features <= 1.4 versteht,
wie kompilierst du, per Konsole oder in einer Entwicklungsumgebung?

für Eclipse:


----------



## Nightfall (27. Nov 2009)

Ja danke, genau das war der Fehler!
Eclipse war auf 1.4 eingestellt


----------



## Schnappi (29. Mai 2012)

hallo,
leider habe ich noch nich herausgefunden, wie ich hier selbst beiträge reinschreiben kann. da mein problem auch mit der printf methode zusammenhängt, füge ich meine frage einfach mal hier ran. vielleicht liest es ja jemand.
	
	
	
	





```
import java.io.Console;
public class Fibonacci
{
public static void main(String[]args)
{
	int UserEingabe;
	Console console = System.console();
	int n;
	String UserEingabeString=console.readLine("n:");
	n=Integer.parseInt(UserEingabeString);

	{
		int a=0;
		int b=1;
		int i=0;
		int erg;
		double Quotient;

	System.out.println("n    " + "f_n    " + "Ratio f_n/f_(n-1)"); 

		while(i<=0){
			erg=0;
			Quotient = (double) b / a;
			System.out.println(i+"    "+erg+"      "+Quotient);
			i++;	
			}


		while(i<=n){
			erg=a+b;
			Quotient = (double) b / a;
			System.out.println(i+"    "+b+"      "+Quotient);
			a=b;
			b=erg;
			i++;
			}
			
	}
}
}
```
so das habe ich jetzt geschrieben. mein problem ist nun, dass ich die ausgabe mithilfe von system.out.printf formatieren soll. kann ich das einfach anstelle des system.out.printeln verwenden?? nur funktionieren dann die ganzen anweisungen nicht.
wäre für hilfe sehr dankbar


----------



## Gast2 (29. Mai 2012)

Oben bzw. unten links gibts nen Button "Neues Thema".

Zu deinem Problem: printf erwartet mind. 2 Paramenter. Als ersten die Formatierungsvorlage und als weitere Parameter die Werte die eingesetzt werden sollen.
Java ist auch eine Insel – 4.7 Formatieren von Ausgaben


----------

