Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Filtr tekstowy - ostream w konstruktorze klasy

Ostatnio zmodyfikowano 2014-02-21 00:29
Autor Wiadomość
Lvkaz
Temat założony przez niniejszego użytkownika
Filtr tekstowy - ostream w konstruktorze klasy
» 2014-02-21 00:29:00
Witam. Mam na programowanie obiektowe takie zadanie:
2. Filtr tekstowy dla plików tekstowych
1. Zliczanie znaków, słów i wierszy
2. Numerowanie wierszy pliku
3. Usuwanie pustych wierszy
4. Zamiana małych liter na duże
5. Zamiana dużych liter na małe
6. Zamiana znaków tabulacji na określoną liczbę spacji
7. Zliczanie krotności wystąpienia podanego ciągu znaków
8. Zamiana podanego ciągu znaków na inny podany ciąg
ETC ETC...

Napisałem np. taką funkcję:...

C/C++
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;

void kasujWybranyWiersz( const string wejsciowy, const size_t wiersz, const string wyjsciowy );

int main()
{
    kasujWybranyWiersz( "wejsciowy.txt", 4, "wyjsciowy.txt" );
   
    return 0;
}

void kasujWybranyWiersz( const string wejsciowy, const size_t wiersz, const string wyjsciowy )
{
    vector < string > tab;
    ifstream wejsc( wejsciowy.c_str() );
    string temp;
    while( getline( wejsc, temp ) ) tab.push_back( temp );
   
    wejsc.close();
    ofstream wyjsc( wyjsciowy.c_str() );
    for( size_t i = 0; i < tab.size(); ++i )
    {
        if( i + 1 != wiersz ) wyjsc << tab[ i ] << endl;
       
    }
    wyjsc.close();
}


... i niby realizuje to podpunkt Usuwanie Wybranego Wiersza, ale chciałbym to zrobić jako wywołanie metody klasy. I żeby w konstruktorze klasy użyć otwierania pliku wejściowego a w destruktorze zapisanie pliku wyjściowego, jak to zrobić?
(chodzi mi o coś takiego:


C/C++
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;

class Plik {
private:
    ifstream iFile;
    const string inputName;
    ofstream oFile;
    const string outputName;
public:
    Plik( const string inputName, const string outputName )
    {
        iFile( inputName.c_str() );
        oFile( outputName.c_str() );
    }
    ~Plik()
    {
        iFile.close();
        oFile.close();
    }
    void kasujWybranyWiersz( int numerWiersza ) {
        //Tutaj usuniecie wiersza
    }
};

int main() {
    Plik o1( "input.txt", "output.txt" );
    o1.kasujWybranyWiersz( 3 ); // kasuje trzeci wiersz z input file i zapisuje na output file.
    return 0;
}


Z gory dziekuje za porady!
Pozdrawiam, Lvkaz
P-105040
« 1 »
  Strona 1 z 1