[C] Printf untereinander bündig ausgeben?

10/20/2013 15:04 Belur#1
Hey,

bin im Laufe des Studiums gerade dabei C zu lernen und habe meine erste Aufgabe gekriegt.

Wir sollten eine Tabelle ausgeben, die für bestimmte Radien den Flächeninhalt eines Kreises angibt.
Hatte also 2 Methoden.

Code:
double kreis_flaeche(int zahl) {
    return M_PI*(zahl*zahl);
}
und:

Code:
void tabelle(){
printf("| Radius | Kreisfläche\n");
int r;
for(r = 1; r <= 20; r++) {
printf("| %d | %f\n", r, kreis_flaeche(r));
}
Jetzt hätte ich es gerne so dass die "|" schön untereinander bündig sind.

Momentan sind sie natürlich noch versetzt. Grade wenn der Radius 2-stellig wird, sind die "|" wieder um einen nach rechts verschoben.

Hoffe ihr versteht mein Problem und könnt mir helfen.

Greets
10/20/2013 18:20 +Yazzn#2
Code:
	printf("%-7s| %s\n", "Radius", "Kreisfl\x84 \bche");
	for (int r = 1; r <= 20; ++r)
		printf("%-7d| %f\n", r, kreis_flaeche(r));
output:

[Only registered and activated users can see links. Click Here To Register...]
10/21/2013 01:02 Delinquenz#3
Quote:
Jetzt hätte ich es gerne so dass die "|" schön untereinander bündig sind.
Das was du suchst ist der horizontale Tab. \t

Code:
printf("| Radius\t| Kreisfläche\n");
// ...
printf("| %d\t| %f\n", r, kreis_flaeche(r));