printf Ausrichtung
-
Hallo,
ich habe eine ganz simple Frage:
Wenn ich einen Text z.B:
printf ("%80s","Dieser Text wird rechtsbündig angezeigt.");
rechtsbündig ausgeben möchte mach ich das mit der 80.
Wie kann ich die 80 durch eine Variable ersetzen?
Ich habe %(pos)s und andere kreative Möglichkeiten ausprobiert allerdings ohne Erfolg.
Danke schon mal,
lg Steven
-
Du könntest eine eigene Auffüllfunktion schreiben, der du dann einen Parameter deiner Wahl übergibst.
-
Genau das wollte ich ja machen
Aber ich weiß leider nicht wie ich den Wert der Ausrichtung (sprich die 80 z.B.) durch einen Variable ersetzen kann?
-
printf ("%*s", anzahl, "Dieser Text wird rechtsbündig angezeigt.");
-
mtkgp300 schrieb:
Genau das wollte ich ja machen
Aber ich weiß leider nicht wie ich den Wert der Ausrichtung (sprich die 80 z.B.) durch einen Variable ersetzen kann?
Du schreibst eine Funktion, die in deinem String alles um x Stellen (Gesamtlänge, z.B. 80, minus Länge des Originalstrings) nach rechts verschiebt (da muss natürlich genug Platz sein!) und links mit Blanks auffüllt. Das Endergebnis kannst du dann mit printf ausgeben (dann nur %s, denn der String hat ja schon die gewünschte Länge).
-
Scheppertreiber schrieb:
printf ("%*s", anzahl, "Dieser Text wird rechtsbündig angezeigt.");
Oh, das geht? War mir neu.
Aber gut zu wissen...
-
Da geht noch mehr:
printf ("%.*s", anzahl, "Dieser Text wird rechtsbündig angezeigt.");
zeigt nur die ersten anzahl Zeichen an.
-
Top, klappt super, vielen dank!
-
Schau mal ins Manual unter printf, da dürften alle Optionen aufgeführt sein.
Ist recht interessant und leistungsfähig. Fast alles geht dann auch bei scanf.