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 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?????? 😕


Log in to reply