Flags



  • Hallo ich bin gerade dabei auf der Konsole einen Quadrat zu "zeichnen"

    Nur das Problem ist das mein Quadrat immer so aussieht:
    ________
    | |
    | |
    | |
    _________

    Die Linen an der Seite sind so gestrichelt kann man das auch ohne gestrichelte Linen machen?

    cout << setiosflags(ios::right) << setw(19) <<"__________\n";
    
    for (int i=0;i<4;i++)
    {
    cout << setiosflags(ios::left)<< setw(9) << "|\n";
    cout << resetiosflags(ios::left)<<setw(19)<<"|\n";
    }
    
    cout << setiosflags(ios::right) << setw(19) <<"___________\n";
    


  • Hier ist mal ein Bild davon

    http://img-up.net/?up=sdfsdBzHcs42h.JPG



  • Also, ich bin mir da nicht ganz sicher, von Haus aus kannst du das nicht, da müsstest du mit den Zeichenabständen tricksen (falls das möglich ist), was dann aber wieder von der Konsole Abhängig ist. Wenn du Linien oder Körper darstellen willst, musst das Zeichnen die Konsole ist kein Widget worauf man zeichnen kann.



  • roflcopter schrieb:

    Die Linen an der Seite sind so gestrichelt kann man das auch ohne gestrichelte Linen machen?

    Die Konsole ist nicht für Grafikausgaben gedacht. Unter Umständen hat der in der Konsole verwendete Zeichensatz aber entsprechende Zeichen für einfache Rahmen. Dann müsstest du dir diese aber entsprechend heraussuchen. Bau dir doch einfach einmal eine Funktion und lass dir alle Zeichen oberhalb von 128 anzeigen.

    cu André



  • Wie wär's mit Leerzeichen ? Da weiß man, was man hat ....

    ... guten Abend,

    Simon2.



  • vielleicht so (jedenfalls für WinXP Konsole, Standardschriftart):

    cout << setiosflags(ios::right) << setw(19) <<"__________\n"; 
    char c = 179;
    
    for (int i=0;i<4;i++) 
    { 
    	cout << setiosflags(ios::left)<< setw(8) << c; 
    	cout << resetiosflags(ios::left)<< setw(11) << c << "\n";
    } 
    
    cout << setiosflags(ios::right) << setw(8) << c << "__________" << c << "\n";
    


  • So funktionierts :> ty


Log in to reply