Wie kann ich in C++ in der Konsole den Text zentrieren?

2 Antworten

Letztendlich geht das überhaupt nicht. Du kannst lediglich Leerstellen an den Anfang schreiben, um den Text eben weiter nach rechts zu schieben. Diese Lösung findest Du wohl auch in Dory1s Link.

Ein Tipp von mir: Mach es einfach nicht :-) Eine Konsolenausgabe ist eigentlich nicht dafür gedacht, tolle Effekte zu erzielen. Falls Du etwas grafisch aufhübschen willst, verwende Doch einfach entsprechendes Frontend oder schreibe in eine Datei statt in die Konsole.

ElamoMichi 
Fragesteller
 31.03.2019, 20:38

Mein ursprünglicher Plan war eigentlich eine einfaches kleines Spiel in der Konsole zu schreiben, aber sobald ich den linksbündigen Text irgendwie ein bisschen verschönern möchte, merke ich schnell das es anscheidend bestimmte Funktionen einfach nicht gibt.

Anscheineind bin ich gezwungen als Anfänger mich mehr mit der grafischen Programmierung zu beschäftigen. Damit ich das programmieren kann, was ich gerne möchte.

1
KnorxyThieus  31.03.2019, 20:41
@ElamoMichi

Ich würde dir raten, dir ein einfaches Framework zu suchen. Wenn du direkt mit Qt oder OpenGL oder so beginnst, bist du wahrscheinlich verloren - schön einfach ist zum Beispiel Squeak.

2
User16495  01.04.2019, 01:09
@ElamoMichi

Ja, das macht definitiv Sinn. Vor allem, wenn Du sowieso am liebsten mit Spielen lernst. Auf Wikipedia findest Du eine Liste mit unterschiedlichen GUI-Libraries für C++

https://de.wikipedia.org/wiki/Liste_von_GUI-Bibliotheken#C++

Ich hab bisher nur mit GLUT gearbeitet, was aber kein leichter Einstieg ist. Klick Dich doch mal durch die Libraries und schau, ob Dir eine einfache davon ausreicht, um Deine Darstellungen umzusetzen.

1

Dir muss klar sein, dass eine Konsole eigentlich nicht zur grafischen Ausgabe gedacht ist. Ergo bietet sich letztlich auch nur ein Workaround, bei dem du rechnest:

Fenstergrösse/2 - Textlänge/2

So kannst du beispielsweise die entsprechende Anzahl Leerzeichen printen, bevor der Text folgt.