tabelle mit einer größe von 12*12 erstellen und mit variablen füllen



  • Ich habe ein Problem, ich will einige variablen in einer tabelle ausgeben, aber ich habe leider keine ahnung wie ich das machen könnte/ ob das geht. Ich weiss vorher nicht wie viele stellen die einelnen werte haben. Als Compiler nehme ich den Dev-C++4.9.9.0

    danke schonmal für eure Antworten



  • Such mal nach iomanip, dort kann man tabellenartige Ausgaben machen.
    Möglicherweise reicht jedoch auch die Tabulator-Escapesequenz "\t".


  • Administrator

    Ich nehme mal an, dass du die Tabelle auf der Konsole ausgeben willst, oder? Falls du in einem GUI meinst, dann bist du hier im falschen Forum 😉

    Es gibt eigentlich immer eine obere Grenze, auch wenn es nur die Grenze des Wertebereiches ist. Obere Grenzen, bzw. die maximale Anzahl stellen, kannst du über folgenden code herausfinden:

    #include <limits>
    
    // Irgendwo in einer Funktion
    {
        int iDigits = std::numeric_limits<int>::digits;
    }
    

    Das gilt jetzt vor allem für integer typen, müsstest dir halt allgemein ein wenig numeric_limits anschauen.

    Mit diesen Informationen, als maximale Anzahl Zeichen (sei es über die numeric_limits oder weil du es selber weisst), kannst du das folgende anwenden:

    int main()
    {
        int iMaxDigits = std::numeric_limits<int>::digits;
    
        std::cout.width(iMaxDigits);
        std::cout.fill(' ');
    
        // Deine Zahlen ausgeben. Eine Spalte wird immer genau iMaxDigits Zeichen aufweisen.
        // Leere Zeichen in der Spalte werden mit einem ' ' aufgefüllt.
        // Für die Trennung zwischen den Spalten oder Reihen musst du noch selber sorgen mit '|' und/oder '-'
    }
    

    Damit kann man relativ schnell, relativ einfache Tabellenausgaben für die Konsole programmieren.

    Grüssli



  • danke, dass hilft mir schonmal, ich meinte eine Ausgabe in einer Konsole. Ich denke die Zahlen werden eh nicht größer als 5 stellig, es sollte also gehen,oder.

    auf jedenfall schonmal danke 🙂


Log in to reply