Text in Console zentrieren

Commander^keen
Hi allezusammen,

ich bin gerade dabei einen kleinen vokabeltrainer zu progammieren.
Möchte dabei Text zentrieren wie geht das?bzw. geht das überhaupt
in einer console????
progammiere mit c++

MfG
Keen
Chris Hunter
du musst dir selber ne funktion schreiben die die anfangsposition des strings berechnet und dann die cursorpostions setzen und dann den string ausgeben.
ich weis net ob sprintf nicht n flag dafür hat(glaube nicht) den befehl mit dem du die cursorposition setzt weis ich auch nihct mehr (heul) schau mal in der doku unter sprintf evtl hilft das weiter. wenn nihct einfach mal nach nem befehl suchen der dir den cursor setzt.
daHooligan
Ich hab zwar keine Ahnung von C++, hab aber so was mal in Turbopascal programmiert..

Im Prinzip ging das dann so:
Text-Startposition=(Zeichen pro Reihe-Wortlänge)/2....

ich hoffe mal, dass das hilft...
Hanffred
und falls du es jetzt immer noch net hast:

#include <stdio.h>
#include <string.h>

int main(void)
{
char ueberschrift[80];
int i;

strcpy(ueberschrift, "Dieser Text ist zentriert");

for(i=0;i<=int((80 - strlen(ueberschrift))/2);i++)
{
printf(" ");
}

printf("%s\n", ueberschrift);

return 0;
}

Funktioniert nach dem Prinzip wie oben erklärt, die Startposition wird errechnet und mit Leerzeichen wird dann an diese Position gerückt und der Text in "ueberschrift" an diese Stelle geschrieben. Hoffe das hat die geholfen, MfG
Interceptor
Hi Leutz

Gab es da nicht die funktion goto(x,y) ?

Oder war das jetzt wieder Borland only ?!
daHooligan
also zumindest in turbo Pascal (k.A. woher das kommt obBOrland oder nicht) gabs das
enno-tyrant
@Hanffred:
Zitat:
Original von Commander^keen
...progammiere mit c++...
Augenzwinkern

@Interceptor: 'goto' hat in c++ die gleiche bedeutung wie in basic (und ist nicht zu empfehlen)

ich denke mal du suchst das:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
#include <iostream>
#include <string>
#include <iomanip>

int main()
{
	std::string text="Zentrierter Text";
	int max = 80;
	max=(max-text.size())/2;
	std::cout << std::setw(max) << "" << text << std::endl;
}