Datei in Klasse ?
-
Hallo,
ich möchte in meiner Klasse eine Datei öffnen damit ich in methoden etwas in die Datei schreiben kann.Hab mir das etwa so vorgestellt :
class test { public : test(); write(); private : FILE *file; int a; } test::test() { file = fopen("DAtei.txt","r+"); a=0; } test::write() { fprintf(file,"TESTEINTRAG"); }leider gibts ein Fehler.
muss ich im Konstruktor neuen Speicherplatz anlegen ??
test::test() { file = new *FILE; file = fopen("DAtei.txt","r+"); a=0; }Danke fürs lesen,
Chris
-
chri5 schrieb:
leider gibts ein Fehler.
Schade.
muss ich im Konstruktor neuen Speicherplatz anlegen ??
Nein.
-
Du solltest die IO Klassen der STL nutzen
etwa so:
ofstream file("datei.txt"); ofstream<<"Das ist ein Test"<<endl; file.Close();um den Fehler zu finden:
file = fopen("DAtei.txt","r+"); if(!file) cout<<"Fehler"<<endl;
-
Was für einen fehler gibt es denn?^^
Aufjeden fall musst du irgend wo die Datei auch wieder schliessen.
Ob das nun zum Fehler führt weiß ich nicht. Nur wenn nicht kannst
sie später nicht zB mit Editor überprüfen da sie immer noch verwendet
wird.
-
class file { private: enum mode { read, write } m_mode; FILE* m_pFile; public: file(const std::string& name, const mode& mode) : m_mode(mode), m_pFile(NULL) { m_pFile = fopen(name.c_str(), m_mode == read ? "r" : "w"); ~file() { if (m_pFile != NULL) fclose(m_pFile); m_pFile = NULL; } public: int write(const char* data, const std::size_t len) { if (m_mode != write) return 0; return fwrite(data, len, m_pFile); } };?!