Textdatei auslesen und parsen



  • Hi,
    ich muss folgendes realisieren:
    Ein Programm soll Assembler-Code in OpCode umwandeln. Nun würde ich gerne eine Funktion schreiben, die einen String von einem Stream (ifstream) buchstabenweise liest.

    Mein Funktionskopf sollte so aussehen:
    code: string function(ifstream name);

    Der Stream ist natürlich vor dem Funktionsaufruf schon geöffnet. Leider funktioniert das so nicht. Kriege Fehlermeldungen wie "std::ios_base is private".

    Kann mir dabei jemand helfen?
    Danke schon mal im voraus.
    Kai



  • drunken_kai schrieb:

    Hi,
    ich muss folgendes realisieren:
    Ein Programm soll Assembler-Code in OpCode umwandeln. Nun würde ich gerne eine Funktion schreiben, die einen String von einem Stream (ifstream) buchstabenweise liest.

    Mein Funktionskopf sollte so aussehen:
    code: string function(ifstream name);

    Der Stream ist natürlich vor dem Funktionsaufruf schon geöffnet. Leider funktioniert das so nicht. Kriege Fehlermeldungen wie "std::ios_base is private".

    Kann mir dabei jemand helfen?
    Danke schon mal im voraus.
    Kai

    Dein Parameter name muss eine Referenz sein. Btw: Klasse sollten sowieso, nicht nur hier weil es in einen Compilerfehler mündet, möglichst immer per Referenz übergeben werden. Aus Performanzgründen. Dein Rückgabetype würde ich daher auch als Referenz als Parameter übergeben, da sonst zwei Strings erstellt werden.
    Neue Funktionssignatur:

    void function(ifstream &name, std::string &str);
    

    Wolltest du auch Hilfe zum Funktionscode oder ging es dir nur um den Fehler?



  • Danke, für die schnelle Hilfe. Hab lange nichts mehr mit C++ gemacht. Der Funktionskopf reicht mir völlig aus. Wenn ich auf weitere Probleme stoße, werd ich mich wieder melden.



  • naja gut, eine Frage habe ich dann doch noch.
    wie überspringe ich eine zeile, wenn ich "//" gefunden habe?



  • Naja, du liest solange weiter, bis du ein '\n' findest. Ab dem nächsten Zeichen kannst du dann weiterverarbeiten.

    Greetz, Swordfish


Anmelden zum Antworten