Inhalt aller Textfelder in Klasse schreiben und die speichern



  • hallo

    ich wollte die suche benutzen, aber die geht leider nicht. viele fehler 😞

    mein vorhaben

    ich möchte ein adressbuch (wie in outlook) schreiben. keine angst dient nur zur übung.

    allerdings stoße ich dabei immer auf probleme mit char und string.

    bisher habe ich zum schreiben

    class test
    	{
    	public:
    		int alter;
    		char merksatz;
    		int test;
    
    	};
    	UpdateData(true);
    	test d;
    	d.alter=m_alter;
    	d.test=m_test;
    	//d.merksatz="nur ein test";
    	ofstream fout("test.dat",ios::binary);
    	fout.write((char*) &d,sizeof d);
    
    	fout.close();
    

    und zum lesen

    class test
    {
    public:
    int alter;
    char merksatz;
    int test;

    };
    test d;
    ifstream fin("test.dat",ios::binary);
    fin.read((char*) &d, sizeof d);
    fin.close();
    m_alter=d.alter;
    m_test=d.test;
    UpdateData(false);

    jetzt speichere ich nur int werte. wie funktioniert das ganze mit string oder char? daran scheitere ich seit gestern 😞

    und wie kann man es machen, damit ich mehrere kontaktdaten speichern kann?



  • Text speichern kannst du auch mit write

    char merksatz[255] = "Never say never;
    
    // [...]
    
    fout.write( merksatz, strlen(merksatz));
    

    Gruß
    :: NoName ::



  • wenn ich das so schreibe

    d.merksatz="hallo";

    bekomme ich einen fehler das char nicht in char[6] konvertiert werden kann. ich weiß aber echt nicht wie ich es lösen kann.

    und wenn ich nun mehrere datensätze speichern will, muss ich dann die klasse zum array machen oder die variablen der klasse zum array



  • Versuchs mal so...

    d.merksatz[255] = "hallo";
    

    und natürlich musst du auch in deiner Klasse char merksatz[255]; schreiben

    Gruß
    :: NoName ::



  • ich hoffe ich nerve nicht

    aber auch wenn ich es so mache klappt es nicht

    error C2440: '=' : 'char [6]' kann nicht in 'char' konvertiert werden

    class test
    	{
    	public:
    		int alter;
    		char merksatz[255];
    		int test;
    
    	};
    	UpdateData(true);
    	test d;
    	d.alter=m_alter;
    	d.test=m_test;
    	d.merksatz[255] = "hallo";
    

    daran scheitere ich die ganze zeit.



  • strcpy & ein C++-Buch ...



  • Leite einfach eien Klasse von CObject ab und verwende statt char CString. Der Vortteil: Du hast sofort auch CArchive.

    Solltest dir aber trotzdem mal ein Buch mit den Grundlagen besorgen



  • Unix-Tom schrieb:

    Leite einfach eien Klasse von CObject ab und verwende statt char CString. Der Vortteil: Du hast sofort auch CArchive.

    Solltest dir aber trotzdem mal ein Buch mit den Grundlagen besorgen

    welches kannst du denn empfehlen?


Anmelden zum Antworten