printf Tabelle ausgeben



  • Hallo,

    es gibt bereits einige Forenbeiträge mit der Frage, "wie gebe ich mit printf eine Tabellenstruktur aus?". Leider hat keiner davon mein Problem gelöst:

    Ich habe 4 Strings (char-arrays) mit jeweils 4 Einträgen. Diese will ich in einer 4 mal 4 Tabelle ausgeben. Die jeweiligen Einträge haben dabei unterschiedliche Länge.

    Ich habe vor, zunächst die maximale Länge jeder Spalte zu berechnen, damit alle Einträge sauber untereinander stehen. Mit

    printf ("%3d\n", x);
    

    kann ich ja eine Variable mit 3 Platzhaltern ausgeben. Wie kann ich aber eine Variable mit x Platzhaltern ausgeben (x int Variable)???

    Gibt es eina andere / komfortablere Methode zur Ausgabe einer Tabelle mit printf? (Tab \t funktioniert in meinem Fall wohl nicht)



  • Sebi09 schrieb:

    Wie kann ich aber eine Variable mit x Platzhaltern ausgeben (x int Variable)???

    Du könntest den Formatstring doch einfach vorher in Ruhe zusammen basteln und dann an printf übergeben.



  • int breite;
    
    	for(breite = 5; breite < 8; ++breite)
    	{
    		printf("%*d\n", breite, 10);
    	}
    


  • Super, vielen Dank!



  • Rein interesse-halber: Lässt sich das ganze auch (unkompliziert) abändern, sodass die Spalten linksbündig, anstelle von rechtsbündig dargestellt werden?

    Rechtsbündig (derzeitige Ausgabe):

    trallala trallala    0        lol
    lalalala trallala 1234     mamama
    trallala       cs    0 htebxillmu
    trallala trallala    0    hasmert
    

    Linksbündig:

    trallala trallala    0 lol
    lalalala trallala 1234 mamama
    trallala xy          0 htebxillmu
    trallala trallala    0 hasmert[code]
    


  • Sebi09 schrieb:

    Rein interesse-halber: Lässt sich das ganze auch (unkompliziert) abändern, sodass die Spalten linksbündig, anstelle von rechtsbündig dargestellt werden?

    Ja.



  • Sebi09 schrieb:

    Rein interesse-halber: Lässt sich das ganze auch (unkompliziert) abändern, sodass die Spalten linksbündig, anstelle von rechtsbündig dargestellt werden?

    Jup, google sagt dir auch wie:
    http://www.google.de/search?q=printf
    Dritter Link von oben ^^


Anmelden zum Antworten