Frage von niggo123999, 62

Wie erstelle ich Spalten, bzw. Zeilen überschriften bei mehrdimensionalen Arrays in C++?

Hallo!

Ich sitze gerade an einer Schulaufgabe bei der mit hilfe eines zweidimensionalen Arrays Tankdaten (Also Menge in Liter, Preis Pro Liter etc) erfasst werden. Bis jetzt auch alles kein Problem, aber wir sollen die Daten in einer Tabelle mit Splaten und Zeile überschriften ausgeben lassen. Bis jetzt kriege ich es halt nur so hin, das ich die einzelnen Werte zwar Tabelarisch und geordnet ausgeben kann, aber ich habe keine Spalten überschriften und Zeilenüberschriften.

Also ich meine halt z.B. für Array[0][0] soll die Spaltenüberschrift "Summe Liter" stehen, für Array[0][1] dann z.B. Summe Kaufpreis. Und das selbe bei den Zeilen, nur sollen die Überschriften halt neben den Zeilen stehen. Mein bisheriger AUsgabe Code sieht so aus:

    for(i=0; i<3; i++){
        for(j=0;j<3;j++){
            cout<<setw(10)<<tab[i][j]<<"|";
        }
        cout<<endl;
    }

Hoffe jemand kann mir zu so später Stund noch helfen :D

LG

Antwort
von PeterKremsner, 40

Ich würde den Text selbst nicht in das Array stecken, sondern gesondert ausgeben.

Wenn das jedoch Vorgabe ist, dann musst du ein Array vom Datentyp char* erstellen und für jeden Eintrag mit malloc Speicher reservieren und mit einem Text befülllen und dann den Pointer im Array Speichern. Die Zahlen musst du dann aber selbst als string speichern, oder auf 8 Bit Blöcke aufteilen damit du sie in einem char Array speichern kannst (das du mit malloc alloziierst)

Kommentar von niggo123999 ,

Also der Array mit den Tankdaten ist int. Der rest ist egal, soll am ende nur gut aussehen. Aber wo soll ich was hintun damit es gut aussieht? ^^

Kommentar von PeterKremsner ,

Versuch mal den Text mit dem String auszugeben:

Summe Liter\t\tSumme Kaufpreis\n

und das Array gibst du so aus:

printf("%ld\t\t%ld\n",Array[x,0],Array[x,1]);

Wie die Syntax bei cout aussieht weis ich leider nicht.

Aufjedenfall sollte stehen der Wert vom Array bei Spalte 0 \t\t Wert vom Array bei Spalte 1.

\t ist übrigens das Zeichen für den Tabulator, das bedeutet wo das steht kommt in der Ausgabe dann ein Tabulator hin.

Antwort
von J0T4T4, 26

Hey,

so wie ich das sehe ist es wohl das Beste die Spalten zuerst als string wie eine Überschrift auszugeben (std::cout << "\tSumme Liter\t Summe Kaufpreis\t usw.\n";), die Zeilen in einem string-Array zu speichern (std::string zeilen[]), und dann jeweils zeilen[i] vor der zweiten for-Schleife auszugeben.

Du wirst dabei sicher noch ein wenig mit der Formatierung spielen müssen, aber ich bin Programmierer und nicht Künstler xD

Antwort
von Rynak, 23

Wenn tab ein int-Array sein soll, musst du den Text (kein Integer) Separat ausgeben, also sowas wie
cout << "Liter: ...:" << endl
vor die Ausgabe schreiben (natürlich mit Formatierung)

Keine passende Antwort gefunden?

Fragen Sie die Community