Datei auslesen?
-
Hallo,
möchte gerne eine Datei auslesen , Zeichen , Zeilen und Wörter
wie kann ich das mit denn Wörter machen das der die Wörter zählt ?#include <iostream> #include <fstream> #include <string> using namespace std; char Dateiname[]="D:\\Testausgabe.txt"; int main() { // --- lesen -------------------------------- ifstream Eingabe; Eingabe.open(Dateiname,ios::binary | ios::in); string zeilen; char zeichen; char woerter; int i=0; int e=0; int f=0; // ----------- Zeichen Lesen while(Eingabe.get(zeichen)) { i=i++; } Eingabe.close(); //------------- Zeilen Lesen ifstream Eingabe2; Eingabe2.open(Dateiname,ios::binary | ios::in); while(!Eingabe2.eof()) { getline(Eingabe2,zeilen); f=f++; } Eingabe2.close(); //------------- Wörter Lesen cout << " zeichen " <<endl; cout << i <<endl; cout <<" woerter "<<endl; cout << e <<endl; cout << " Zeilen " << endl; cout << f << endl; }
-
Ich würde die Datei bis zum Ende als String einlesen und diesen dann analysieren. Dazu würde ich beispielsweise das Leerzeichen als Trennzeichen definieren und den String entsprechend splitten. Diese Splits würde ich dann weiter untersuchen, ob sie Zahlen oder Wörter sind.
Schneller geht es aber mit einem Perlscript, welches du in dein C++ einbindest. Hab zumindest mal gelesen, dass das ganz gut klappen soll.
-
Dieser Thread wurde von Moderator/in Jochen Kalmbach aus dem Forum C++/CLI mit .NET in das Forum C++ verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
wolframundhart schrieb:
wie kann ich das mit denn Wörter machen das der die Wörter zählt ?
Genau so wie mit den Zeichen, nur lese Wörter statt Zeichen:
#include <fstream> #include <iostream> #include <iterator> // distance, istreambuf_iterator, istream_iterator #include <algorithm> // count #include <string> int main() { using namespace std; const char dateiname[] = "D:\\Testausgabe.txt"; { ifstream eingabe( dateiname ); cout << "Anzahl Zeichen (alle Zeichen): " << distance( istreambuf_iterator< char >( eingabe ), istreambuf_iterator< char >() ) << endl;; } { ifstream eingabe( dateiname ); cout << "Anzahl Woerter: " << distance( istream_iterator< string >( eingabe ), istream_iterator< string >() ) << endl;; } { ifstream eingabe( dateiname ); cout << "Anzahl Zeilen: " << count( istreambuf_iterator< char >( eingabe ), istreambuf_iterator< char >(), '\n' ) << endl;; } return 0; }Gruß
Werner
-
wow,
@werner, wollte hier auch schon antworten aber deine antwort ist echt super. kürzer gehts wohl nich.
hat mir auch weiter geholfen,
gruß
-
pre und postdekrement
++i und i++pre:
i = 0; cout << ++i << endl; cout << i;1
1
soll heißen, i=i+1 wird berechnet, zurück gegeben und ausgegebenpost
i = 0; cout << i++ << endl; cout << i;0
1
soll heißen, i wird ausgeben, i=i+1 wird berechnet und zurück gegeben