G
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 Block
void
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??????