Új hozzászólás Aktív témák

  • Sk8erPeter

    nagyúr

    Hali!
    Van egy kérdésem fájlkezeléssel és a standard bemenet objektumként való kezelésével kapcsolatban. Jól jönnének az ötletek!

    Van egy File osztályom, amiben a számomra szükséges metódusokat valósítom meg fájlkezeléssel kapcsolatban, és az osztály konstruktorának van egy default NULL értékkel ellátott paramétere - a konstruktornak át lehet adni egy fájlnevet, amit ugyanitt a konstruktorban majd megnyitok, stb.
    Ha a paraméter üres (NULL), akkor majd a standard inputról kellene olvasnom.
    A konstruktor fejléce így néz ki:
    File(const char * filename=NULL);

    A fájlkezeléshez létrehoztam egy
    ifstream file_to_process;
    tagváltozót (private), ez lesz az, amibe majd megnyitom a fájlt, amiből olvasok, stb., a standard inputról meg getchar-ral olvastam - ez viszont, ha már OOP, nem egy túl elegáns megoldás, ezért gondoltam arra, hogy akkor a változót istream-mé kéne tenni, ennek úgyis származtatott osztálya az ifstream, majd megoldom úgy - és akkor végül is a cin-t objektumként kezelem.
    Ezért átalakítottam így:
    istream file_to_process; //ifstream helyett!

    Na de most az a para, hogy viszont így a korábban létrehozott metódusok nem működnek, az olyanok, mint pl. a következő:
    file_to_process.open(filename, ifstream::in) //vagy ios::in ???

    Hogyan tudnám ezt a legegyszerűbben megoldani, hogy ezek a metódusok működjenek istream-mel is?

    Előre is köszi az ötleteket!
    Remélem valamennyire érthetően írtam, ha nem, kérdezzetek, köszi! :R

    [ Szerkesztve ]

    Sk8erPeter

Új hozzászólás Aktív témák