ifstream in, Datei/Pfad zum Lesen vorhanden, aber Stream ist fehlerbehaftet, wieso???
-
Hi,
ich hab ein Problem mit meiner Methode openBlock bzw. mf_readFile. Der Stream hat angeblich Fehler ... das stimmt aber nicht! Seht euch meine Programme an!
*.cpp, Klasse Blockvoid Block ::openBlock(const LTChar *a_cFileName, const LTString& a_sMode) { m_sFileName.assign(a_cFileName); if(!a_sMode.compare("r")) mf_readFile(a_cFileName, a_sMode); // open for reading else if(!a_sMode.compare("w")) mf_writeFile(a_cFileName, a_sMode); // open for writing }
void Block ::mf_readFile(const LTChar *a_cFileName, const LTString& a_sMode) { if(m_sStreamIn.is_open()) m_sStreamIn.close(); m_sStreamIn.open(a_cFileName,ios_base::in|ios_base::binary); if(m_sStreamIn.good()==false) cout<<"\nFile is defective."<<endl; mf_readHeader(); }
Hauptprogramm.cpp:
#include ... int main(){ ... ifstream in; in.open("test8_1_1.blk",ios::in|ios::binary); if(in.good()==false) cout<<"\nFehlermeldung"<<endl; in.seekg(0,ios::end); int t = in.tellg(); if(in.is_open()) in.close(); //-------- // tests, if the binary-file is written correctly Block SubBlockTest; SubBlockTest.openBlock("test8_1_1.blk","r"); ... return 0; }
So, im Hauptprogramm kann ich mit "ifstream in" die Datei problemlos öffnen, der Stream ist fehlerfrei.
Doch wenn ich nun über meine Instanz SubBlockTest die Methode openBlock aufrufe, weist der Stream in mf_readFile Fehler auf auf (m_sStreamIn ist private vom Typ ifstream)!!! Warum nur??????