Zahlen zeichen zuordnen



  • Caipi schrieb:

    Also btw: Einer Konstanten kannst du nichts Zuweisen...

    ...

    Was willst du denn machen? Für mich klingt das nach einem Design-Fehler.

    Gruß Caipi



  • 1 ist eine Konstante, der kannst du nichts zuweisen 😉

    versuch' mal

    cout << 'A';
    

    oder

    char i='A';
    cout << i;
    

    Was genau hast du eigentlich am Ende mit deiner 1 vs. 'A' Überlegung vor?



  • Ich dachte man könnte mit einem array eine art Karte zeichen.Ich dachte dafür habe ich ja 9 werte.die könnte ich ja abspeichern. Dadurch könnte man neue Karten machen.Quasie nen Karten editor dazu. Aber zeichen einer zahl geben dachte ich könnte ich hier fragen. Ich glaube mir ist jetzt was eingefallen wie kann man define wieder weg machen?



  • Warum schreibst du keine Zuordnungsfunktion?
    cout << transform(1) << transform(2) << transform(3) << transform(4) << endl;
    und auf dem bildschirm kommt
    AGTW



  • Stefan311 schrieb:

    wie kann man define wieder weg machen?

    Mittels #undef, bringt dir aber nichts. Und selbst wenn es funktionieren würde wäre es keine gute Idee.

    Zu deinem Problem:

    #include <map>
    
    std::map<int, char> tiles;
    

    std::map<...>



  • Oder, wenn deine verwendeten Grundwerte konstant sind, reicht auch schon ein char[] für die Aufgabe (in manchen Fällen ist map<> einfach Overkill ;))

    const char[] tiles = "ABCDEFG";
    //...
    cout << tiles[i];
    

    (Achtung, der Indes beginnt bei Null)



  • CS schrieb:

    Oder, wenn deine verwendeten Grundwerte konstant sind, reicht auch schon ein char[] für die Aufgabe (in manchen Fällen ist map<> einfach Overkill ;))

    Hatte ich mir im Prinzip auch gedacht, ist aber deutlich flexibler - und deiner Lösung fehlt mindestens noch ein

    enum {
      TILE_A,
      TILE_B,
      // ...
    };
    


  • <ironie>

    #define 1 A
    

    </ironie>



  • phlox81 schrieb:

    <ironie>

    #define 1 A
    

    </ironie>

    Sieht für mich aus wie ein Kandidat für www.thedailywtf.com



  • Ich schätze man hat mich falsch verstanden.
    Folgendes ein 2d array der so ausieh:

    0,0,0,0,2,0,0,0,0,0,
    0,0,0,2,0,0,0,0,0,0,
    0,0,1,4,4,4,4,4,4,4,
    0,0,0,3,0,0,0,0,0,0,
    0,0,0,0,3,0,0,0,0,0,//so siehts im array aus.
    

    Und in der ausgabe solls dann so aussehen:

    ausgabe in konsole:
     , , , ,/, , , , , ,
     , , ,/, , , , , , ,
     , ,|,#,#,#,#,#,#,#,
     , , ,\, , , , , , ,
     , , , ,\, , , , , ,//hier sind die kommer nur zum trennen der
    

    //zeichen da.nicht in der ausgabe.

    Und jetzt meine ich das so
    0=' '
    1='|'
    2='/'
    3='\'
    4='#'
    so könnte ich eine karte zeichnen dafür müsste ich wissen wie ich zahlen zeichen
    zuordne.define klappt nicht.



  • CS schrieb:

    Oder, wenn deine verwendeten Grundwerte konstant sind, reicht auch schon ein char[] für die Aufgabe (in manchen Fällen ist map<> einfach Overkill ;))

    const char[] tiles = "ABCDEFG";
    //...
    cout << tiles[i];
    

    (Achtung, der Indes beginnt bei Null)

    Nimm doch einfach diesen Vorschlag, deine Lösung die 0 oder 1 zu überschreiben ist Unfug!!



  • Dann würde ich einen Transform-Funktion machen, der du die codierte Zeile übergibst und die dir eine decodierte zurückliefert. Oder du gibts ihr das array und sie macht für dich die Ausgabe



  • Also ihr meint jetzt denn array direkt mit denn zeichen zu füllen?



  • Ja, wenn du nicht einen trifftigen Grund hast es nicht zu tun


Anmelden zum Antworten