öffnen und einlesen in struct



  • Mahlzeit...

    Ich möchte eine datei einlesen die nach folgendem Muster aufgebaut ist:
    Manfred Musterman
    12234
    55678
    12234

    Den kram in der Datei will ich in einen struct haben:
    struct datensatz
    {
    string szName;
    bool bDispo;
    float fGeld;
    bool iTyp;
    int iPin;
    int iKontoNr;
    };
    struct datensatz data[100];

    Ich kenne den Code um das in C zu machen, aber dummerweise nicht den für C++..... HELP!



  • Darf ich hinzufügen das das dringend ist....??

    AHHH!



  • Welches Objekt willst Du fürs schreiben verwenden ?

    std::fstream ?

    CFile ?

    Du könntest z.B. operator<< und >> definieren für Deine Strukt



  • ich will fstream benutzen....



  • Hi

    Wenn du MFC verwendest (wenn nicht, bist du im falschen Forum 😉 )
    nimm
    - die Klasse CStdioFile, wenn die Datei im Textformat vorhanden ist.
    - die Klasse CFile, wenn die Datei im Binärformat vorhanden ist.

    Grüße Rapha
    ps.

    pyromane schrieb:

    Ich kenne den Code um das in C zu machen, aber dummerweise nicht den für C++..... HELP!

    Kannst auch den C Code verwenden 😉



  • öhm äh
    falsches......*hust*

    Ich programmiere das teil nich in MFC, also bin ich...äh...also...äh..im falschen....*gluck*



  • pyromane schrieb:

    ich will fstream benutzen....

    #include <iostream>
    #include <fstream>
    #include <string>
    
    struct datensatz 
    { 
    	std::string szName; 
    	bool bDispo; 
    	float fGeld; 
    	bool iTyp; 
    	int iPin; 
    	int iKontoNr; 
    }; 
    
    std::ostream & operator<<(std::ostream & out,const datensatz & satz)
    {
    	out<<satz.szName<<'\n'<<" ";
    	out<< satz.bDispo<<" ";
    	out<<satz.fGeld<<" ";
    	out<<satz.iTyp<<" ";
    	out<<satz.iPin<<" ";
    	out<<satz.iKontoNr<<"\n";
    	return out;
    }
    
    std::istream & operator>>(std::istream & in,datensatz & satz)
    {
    	std::getline(in,satz.szName);
    	in>>satz.bDispo;
    	in>>satz.fGeld;
    	in>>satz.iTyp,
    	in>>satz.iPin;
    	in>>satz.iKontoNr;
    	return in;
    }
    
    int main()
    
    {
    	std::fstream  file("t:\\test.txt",std::ios::out);
    	if(!file)
    		return 20;
    	datensatz t;
    	t.szName = "Test Test";
    	t.bDispo = 1;
    	t.fGeld = 2;
    	t.iKontoNr = 3;
    	t.iPin = 4;
    	t.iTyp = true;
    
    	file<<t;
    	file<<t;
    
    	file.close();
    
    	file.open("t:\\test.txt",std::ios::in);
    
    	file>>t;
    	file>>t;
    }
    

    Als Einstieg.
    Du kannst natürlich noch die Formatierung machen und std::vector verwenden.

    Links aus den FAQs

    http://www.c-plusplus.net/forum/viewtopic.php?t=39470

    http://www.c-plusplus.net/forum/viewtopic.php?t=39469



  • pyromane schrieb:

    öhm äh
    falsches......*hust*

    Ich programmiere das teil nich in MFC, also bin ich...äh...also...äh..im falschen....*gluck*

    ausserdem... c ist eine untermenge von c++. falls du meinst den code in c bereits zu kennen, dann benutze diesen doch einfach weiter! denn die meisten c programme lassen sich auch mit einem c++ compiler übersetzen.



  • alex-t schrieb:

    ausserdem... c ist eine untermenge von c++. falls du meinst den code in c bereits zu kennen, dann benutze diesen doch einfach weiter! denn die meisten c programme lassen sich auch mit einem c++ compiler übersetzen.

    Genau, das meine ich auch 😉 😉

    Grüßle Rapha


Anmelden zum Antworten