Filtr tekstowy - ostream w konstruktorze klasy
Ostatnio zmodyfikowano 2014-02-21 00:29
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ę:... #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: #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 ) { } };
int main() { Plik o1( "input.txt", "output.txt" ); o1.kasujWybranyWiersz( 3 ); return 0; }
Z gory dziekuje za porady! Pozdrawiam, Lvkaz |
|
« 1 » |