000
21.08.2003, 10:24 Uhr
~Newbee2003
Gast
|
Hi,
ich habe ein kleines Problem, ich soll ein Programm schreiben, dass einen Text, in eine Datei schreiben soll. Dieser Text soll nach einem Zeichen durchsucht werden, das der Benutzer eingibt.
Soweit so gut, aber wenn das Zeichen in einem Wort zweimal vorhanden ist, dann wird es mit strstr() nur einmal gezählt. Wie bekomme ich das hin, das er alle Zeichen liest???
C++: |
#include <fstream> #include <iostream> #include <string> using namespace std; void main() { string text; char Zeichen[50]; int z; //Öffnet die Datei new.txt. ofstream OutFile("Test.txt"); //Gibt etwas Text in die Datei aus. cout << "Geben Sie Text ein, der in die Datei 'Test.txt' geschrieben werden soll.\n"; getline(cin, text); OutFile << text; //fragt, nach welchem Zeichen gesucht werden soll cout << "Nach welchem Zeichen soll gesucht werden?"; cin >> Zeichen; //Schließe nun die Datei. OutFile.close(); //Jetzt öffnen wir eine Datei zum Lesen. ifstream InFile; //Richte einen Puffer zum Einlesen des Textes //ein. char p[50]; InFile.open("Test.txt"); z=0; //Lies, solange der Input reicht. while (!InFile.eof()) { //Lies die Datei Wort für Wort ein. Um Wörter zu //lesen, brauchen wir nicht aufs Dateiende zu //überprüfen. InFile >> p; cout << p << " "; if (strstr(p, Zeichen)) z = z+1; } cout << "Das gewaehlte Zeichen befindet sich " << z << " Mal in dem eingegebenen Text\n";
|
|