Schon wieder die Textausrichtung (Konsole)



  • Also als erstes hoffe ich das der Name dieses mal etwas besser passt :p
    Also mein Problem ist, ich möchte gerne etwas in der Konsole ausgeben in etwa so:

    Name: Olaf                                   Name: Peter
    Alter: 17                                    Alter: 97
    

    Und mein Problem dabei ist, dass ich die zweite Spalte nicht gleichmäßig (unabhängig wie viel Text z.b. in der ersten Spalte bei Name oder Alter drinne steht) ausgerichtet bekomme.

    Ich kann das Problem schwer erklären...

    Hier nochmal etwas:

    Name: VölligEgalWieLangDerTextHierIstEsSoll  Name: Peter
    Alter: ImmerAnDerGleichenStelleAnfangen      Alter: 97
    

    Hier vom alten Thread der Link. (http://www.c-plusplus.net/forum/324377) Der Code von Belli ist zwar gut aber, es verstzt immer nur die erste Zeile und die danach nicht mehr...
    Ich hoffe Ihr konnt mir helfen.



  • std::cout << "Name: " << std::width(xx) << name1 << "Name: " << name2;
    


  • Fehlermeldung width() wurde in diesem Gültigkeitsbereich nicht definiert...
    Muss ich dafür etwas bestimmtes includieren?

    Ihr braucht code 😃

    #include <iostream>
    #include <conio.h>
    
    if(g_hp <= 0){
            g_hp=0;
            cout << width(10) << "Name: " << g_name << "\n"
                 << width(10) << "|          |\n"
                 << width(10) << "Pokemon: " << g_pokemon << "\n"
                 << width(10) << "HP: " << g_hp
                 << width(10) << "\n\n\nDu bist tot";
        }
    


  • Sorry, mein Fehler:
    Das Ding heißt setw und du brauchst dafür iomanip.



  • Ja das habe ich auch schon ausprobiert, nur das Problem dabei ist, das es sich an dem letzten Zeichen davor orientiert.



  • Skeptar schrieb:

    Der Code von Belli ist zwar gut aber, es verstzt immer nur die erste Zeile und die danach nicht mehr...
    Ich hoffe Ihr konnt mir helfen.

    Du musst einfach vor jeder Ausgabe den Cursor dahin positionieren, wo Du hin willst. Die nötige Funktion habe ich Dir glaube ich schon gegeben?!



  • Ist ja gut...
    Den Code habe ich schon und der funktioniert auch aber, ich dachte das geht einfacher aber trodzdem danke!



  • (Vorsicht, Anfänger!)

    Würde das nicht auch mit '\t' funktionieren?



  • Stocker34 schrieb:

    (Vorsicht, Anfänger!)

    Würde das nicht auch mit '\t' funktionieren?

    Nein, weil '\t' immer bis zum nächsten Tab-Stopp springt. Wenn davor ein kurzer Text steht könnte das Spalte 9 sein, wenn davor aber ein langer Text steht aber Spalte 21.



  • Ah, okay. Danke, wieder was gelernt.


Anmelden zum Antworten