In Char Variable schreiben und auslesen



  • Also ich habe folgendes Problem:
    Ich schreibe ein Mal-Programm für die PSP und die gezeichneten Striche gehen wegen der Display-Aktualisierung immer wieder weg. So, jetzt möchte ich die koordinaten von den gezeichneten Strichen in eine char schreiben, die ich immer wieder AKTUALISIEREN und AUSLESEN kann. Nur weiß ich leider gar nicht wie man mit den chars umgeht kann mir das vielleicht einer coden oder ein beispiel coden?
    Die char sollte ungefähr so aussehen: "234;423#234;235#524;325" usw
    Ich wäre sehr dankbar wenn ihr mir helfen könntet
    Vielen Dank im Voraus

    EDIT: Wie kann ich noch prüfen ob die variable voll ist?

    EDIT2:Es muss keine char sein einfach nur eine Variable mit Zeichen drinne



  • Eventuell solltest du dich noch ein bisschen genauer mit den Grundlagen von C++ befassen.

    1. Es gibt hauptsächlich 2 Möglichkeiten zur Speicherung von Text: char -Arrays und die Klasse std::string , wobei ich zur Klasse rate, die vieles vereinfacht und nicht so fehleranfällig ist.
    2. Koordinaten solltest du nicht in Zeichenketten speichern, dafür gibt es bessere Datentypen. Wenn es sich immer um ganzzahlige Pixel handelt, wäre short oder int eine gute Wahl.
    3. Da du mehrere Koordinaten speichern willst und nicht im Voraus weisst, wieviele, bieten sich die STL-Container an. std::vector wäre so ein Beispiel, mit dem man mehrere Werte des gleichen Datentyps speichern kann.



  • Kannst du mir da ein Beispiel von geben



  • Termy schrieb:

    Kannst du mir da ein Beispiel von geben

    std::string:
    http://www.cplusplus.com/reference/string/



  • /*point.hpp*/
    
    /*
    speichert einen Punkt in einem 2D-Koordinatensystem im 1. Quadranten (x >= 0, y >= 0)
    */
    
    /*TODO:
     -include-guards
     -vll namespace drum rum packen
     -vll nen template draus machen (für n Dimensionen)
     -vll 'x', 'y', 'z', ... noch als Dimension-Bezeichner hinzufügen, aber das schränkt wohl eher ein
     -...
    */
    
    #include <ostream>
    
    struct TPoint_2D
      {
        size_t x;
        size_t y;
    
        TPoint_2D () : x(0), y(0) {};
        TPoint_2D (const size_t _x, const size_t _y) : x(_x), y(_y) {};
    
        friend std::ostream& operator << (std::ostream &s, const TPoint_2D &pkt)
          {
            s << pkt.x
              << ";"
              << pkt.y;
            return s;
          }
      /*
      TODO:
        >> implementieren
      */
      };
    
    /*main.cpp*/
    
    #include "point.hpp"
    
    #include <vector>
    #include <sstream>
    
    int main ()
      {
        std::vector <TPoint_2D> punkte;
        for (size_t x (0); x != 3; ++x)
          {
            for (size_t y (0); y != 3; ++y)
              {
                punkte.push_back (TPoint (x, y));
              }
          }
        std::stringstream buf;
        for (size_t i (0), j (punkte.size ()); i != j; ++i) //besser über iteratoren lösen
          {
            buf << punkte[i] << " ";
          }
        std::cout << buf.str () << std::endl;
        //siehe konsolen-faq um schließen der konsole zu verhindern, _NUR_ zu testzwecken so:
        system ("pause");
      }
    

    so würd ich es in etwa machen...
    bb



  • omfg
    Ich glaub ich weiß jetzt wie das mit der char geht...
    Danke für die Antworten



  • und trotzdem ist und bleibt char* doof - zumindest im vrgl zu string oder vector <char>... ist die häufigste fehlerquelle und effektiver bekomstes eh nich hin - sicherer scho gleich gar net...

    bb


Anmelden zum Antworten