Hi,
ich bin Neueinsteiger mit c++ und habe jetzt ein Problem mit einer Übungsaufgabe in meinem c++-Buch.
Aufgabe:
Schreiben Sie ein Programm stat.cpp, das eine Statistik für eine Textdatei ausgibt, deren Name eingegeben werden soll. Das Ergebnis soll eine Ausgabe folgender Art hervorbringen:
Anzahl der Zeichen = ...
Anzahl der Worte = ...
Anzhal der Zeilen = ...
Wenn ich nun das Programm laufen lasse wird immer die Fehlermeldung das die Datei nicht geöffnet werden kann und der Dateiname wird auch nicht angezeigt.
1) Muss ich selber eine Textdatei erstellen und dann bei quelle.open den Dateinamen angeben?
2) Was genau macht dateiname.c_str()?
3) Ist in diesem Fall close() und clear() notwendig?
Schon mal vielen Dank für eure Hilfe.
ich bin Neueinsteiger mit c++ und habe jetzt ein Problem mit einer Übungsaufgabe in meinem c++-Buch.
Aufgabe:
Schreiben Sie ein Programm stat.cpp, das eine Statistik für eine Textdatei ausgibt, deren Name eingegeben werden soll. Das Ergebnis soll eine Ausgabe folgender Art hervorbringen:
Anzahl der Zeichen = ...
Anzahl der Worte = ...
Anzhal der Zeilen = ...
Code:
#include <iostream>
#include <fstream>
#include <string>
#include <cstdlib> //für exit()
#include <stdlib.h>
using namespace std;
int main(){
ifstream quelle;
cout << "Dateiname : ";
string dateiname;
cin >> dateiname;
quelle.open(dateiname.c_str());
if(!quelle){
cerr << dateiname
<< "kann nicht geöffnet werden";
exit(-1);
}
char c;
long zeichen = 0;
long worte = 0;
long zeilen = 0;
bool wort = false;
while(quelle.get(c)){
if(c == '\n') zeilen++;
else zeichen++;
if(c >= 'A' && c<= 'Z' || c>='a' && c<='z')
wort = true; //Wortanfang oder c ist in einem Wort
else{ //Wenn c Leerzeichen ist
if(wort)
worte++;
wort = false;
}
}
quelle.close();
quelle.clear();
cout << "Anzahl der Zeichen = " << zeichen << endl;
cout << "Anzahl det Worte = " << worte << endl;
cout << "Anzahl der Zeilen = " << zeilen << endl;
system("PAUSE");
return 0;
}
Wenn ich nun das Programm laufen lasse wird immer die Fehlermeldung das die Datei nicht geöffnet werden kann und der Dateiname wird auch nicht angezeigt.
1) Muss ich selber eine Textdatei erstellen und dann bei quelle.open den Dateinamen angeben?
2) Was genau macht dateiname.c_str()?
3) Ist in diesem Fall close() und clear() notwendig?
Schon mal vielen Dank für eure Hilfe.