Ifstream in klasse

Status
Niet open voor verdere reacties.

JanWillemW

Nieuwe gebruiker
Lid geworden
21 apr 2008
Berichten
2
Ik heb een eenvoudig programma wat ik in een klasse wil zetten.
Het programma leest een bestand uit, telt hoeveel woorden erin voorkomen, geeft dit weer op het scherm, en schrijft het aantal naar een bestand.

Hier de broncode:
Code:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;

int main ()
{
	ifstream invoer("bestand.txt");
	string t;
	int teller =0;
	
	do{
		invoer >> t;
		teller ++;
	  }
	while(!invoer.eof());
	
	cout<<"De tekstfile bestaat uit: "<< teller<<" woorden.";
	cin.get();
	invoer.close();
	

	ofstream uitvoer( "bestand1.txt" );
	uitvoer <<"De tekstfile bestaat uit: "<< teller<<" woorden.";
	uitvoer.close();

}


Ik heb geprobeerd om dit in een classe te zetten, maar het is me niet gelukt.
Zo wou ik het proberen:

Code:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;

class Testje {
	
	public:
		void invoerr();
		void uitvoerr();
};




int main ()
{
	int teller=0;

Testje k;
k.invoerr();
k.uitvoerr();

	void Testje::invoerr() {
	ifstream invoer("bestand.txt");
	string t;
	do{	invoer >> t;
		teller ++;}
	while(!invoer.eof());
	cout<<"De tekstfile bestaat uit: "<< teller<<" woorden.";
	cin.get();
	invoer.close();
	}
	

	void Testje::uitvoerr() {
	ofstream uitvoer( "bestand1.txt" );
	uitvoer <<"De tekstfile bestaat uit: "<< teller<<" woorden.";
	uitvoer.close();
	}

}


Wie heeft de oplossing?

Alvast bedankt,
Groeten Jan-Willem
 
De definities van die functies horen niet in de main() functie thuis ^^.

Code:
#include <iostream>
#include <string>
#include <fstream>

class Test
{
public:
    Test(): teller( 0 ) {}
    void Invoer( const std::string file );
    void Uitvoer( const std::string file );
private:
    int teller;
};

void Test::Invoer( const std::string file )
{
    std::ifstream invoer( file.c_str() );
    do
    {
        std::string troep;
        invoer >> troep;
	++teller;
    } while(!invoer.eof());

    std::cout << "De tekstfile bestaat uit: " << teller << " woorden." << std::endl;
    std::cin.get();
}

void Test::Uitvoer( const std::string file )
{
    std::ofstream uitvoer( file.c_str() );
    uitvoer << "De tekstfile bestaat uit: " << teller << " woorden." << std::endl;
    std::cin.get();
}

int main()
{
    Test test;
    test.Invoer( "invoer.txt" );
    test.Uitvoer( "uitvoer.txt" );
}
 
Laatst bewerkt:
Fantastisch!
Bedankt, ook voor de snelle reactie.:thumb:

Groeten Jan-Willem
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan