Guntpat1981
Mitglied
Hallo zusammen,
ich habe einige Schwierigkeiten mit der Programmierung folgender Aufgabe.
Ziel ist es, Wörter aus einer Textdatei zu lesen und in ein Objekt einer Klasse Wort einzulesen, welches die Wörter in einem String - Attribut verwaltet.
Nun soll in den Objekten der Klasse Wort noch das Vorkommen (sprich Anzahl) der Wörter aufgelistet werden, aber ich weiß nicht, wie ich die Wörter hochzählen kann.
Code - Beispiel:
class Wort {
private:
string wortstring;
int anzahl;
.......usw.
};
---------------------------------------------------------------------------------------
ifstream infile ( fname.c_str() );
MySet dictionary; //dies ist ein Typedef von mir - hier wird der Container set angelegt
std:air< MySet::iterator, bool > success; //pair wird angelegt
while ( !infile.eof() ) {
Wort wort;
infile>>wort; //funktioniert, weil istream>> operator überladen
success = dictionary.insert(wort); //wort wird in set abgelegt
if( !success.second)
cout<<"\nWort "<<*success.first << " schon vorhanden!\n";
//an dieser Stelle möchte ich meinen Zähler aus der Klasse Wort inkrementieren, um herauszufinden, wie oft ein Wort vorkommt. Das Problem ist, dass in meinem Konstruktor die Anzahl am Anfang immer auf 1 gesetzt wird, was dazu führt, dass am Ende in all meinen Wörterobjekten nur eine 1 steht.
Ich hoffe, ihr könnt mir helfen und versteht mein Problem.
Viele Grüße,
Patrick
ich habe einige Schwierigkeiten mit der Programmierung folgender Aufgabe.
Ziel ist es, Wörter aus einer Textdatei zu lesen und in ein Objekt einer Klasse Wort einzulesen, welches die Wörter in einem String - Attribut verwaltet.
Nun soll in den Objekten der Klasse Wort noch das Vorkommen (sprich Anzahl) der Wörter aufgelistet werden, aber ich weiß nicht, wie ich die Wörter hochzählen kann.
Code - Beispiel:
class Wort {
private:
string wortstring;
int anzahl;
.......usw.
};
---------------------------------------------------------------------------------------
ifstream infile ( fname.c_str() );
MySet dictionary; //dies ist ein Typedef von mir - hier wird der Container set angelegt
std:air< MySet::iterator, bool > success; //pair wird angelegt
while ( !infile.eof() ) {
Wort wort;
infile>>wort; //funktioniert, weil istream>> operator überladen
success = dictionary.insert(wort); //wort wird in set abgelegt
if( !success.second)
cout<<"\nWort "<<*success.first << " schon vorhanden!\n";
//an dieser Stelle möchte ich meinen Zähler aus der Klasse Wort inkrementieren, um herauszufinden, wie oft ein Wort vorkommt. Das Problem ist, dass in meinem Konstruktor die Anzahl am Anfang immer auf 1 gesetzt wird, was dazu führt, dass am Ende in all meinen Wörterobjekten nur eine 1 steht.
Ich hoffe, ihr könnt mir helfen und versteht mein Problem.
Viele Grüße,
Patrick