anfaengerproblem



  • Hallo,
    ich schreibe an einem Programm, in dem ich mehrere Binaerfiles auslesen muss, die alle einen Header haben, in dem Daten wie Groesse des Files und so weiter stehen. Das auslesen des Headers will ich deshalb in einer Funktion erledigen lassen.

    long Size(long lSize)
    {
      in.seekg(0, ios::end);
      lSize= in.tellg();
      in.seekg(0, ios::beg);
      return lSize;
    }
    

    geht nicht, da in der Funktion ja der ifstream in nicht bekannt ist. Kann mir jemand sagen, wie ich das anstellen muss?

    Danke



  • void func(istream& in)
    {
      in>>//do something;
    }
    
    int main(void)
    {
      ifstream in("datei.txt");
      func(in);//so gehts!
    }
    

    sprich: den stream übergeben



  • entweder die Datei in der Funktion öffnen (und evtl. wieder schließen)

    oder aber den ifstream an die Funktion als Parameter übergeben:

    #include <ifstream>
    
    void doSomething(std::istream & Fin) // istream, ned ifstream, dann geht's auch mit cin
    {
    ..
    }
    
    int main()
    {
    using namespace std;
    
    ifstream fin(...);
    
    doSomething(fin);
    
    return 0;
    }
    
    PS:
    ned getestet
    

    ... zu spät ...



  • Danke! Hat super geklappt!


Anmelden zum Antworten