Please Help me ! Probs mit Code. macht nicht das was es machen soll...
-
Hi Leutz ...
// main.cpp // Sucht eine Datei(Datei muss vorhanden sein!) und schreibt in diese. #include <fstream> #include <iostream> #include <iomanip> using namespace std; int main(){ int i = 1; char Zeile[250], Datei[50]; streampos ausgabepos1, anfangpos, endepos; cout << "\nDateiname: " << flush; cin.get(Datei,50); ifstream eingabe(Datei,ios_base::in); if(eingabe.good()){ ofstream ausgabe("programm.lst", ios_base::out | ios_base::in | ios_base::ate); if(ausgabe.good()){ eingabe.seekg(0L,ios::end); ausgabe << "Datei: " << Datei << "\t" << eingabe.tellg() << " Bytes"; ausgabepos1 = ausgabe.tellp(); ausgabe << " " << endl; for(int j=0; j<80;j++) ausgabe << "_"; ausgabe << endl; eingabe.seekg(0L,ios::beg); anfangpos = ausgabe.tellp(); while (eingabe.good()) { eingabe.getline(Zeile,250); ausgabe << setw(2) << i++ << ":" << Zeile << endl; if (ausgabe.fail()){ cout << "\nAusgabedateifehler: Schreiben!" << endl; break; } } endepos = ausgabe.tellp(); ausgabe.seekp(ausgabepos1,ios_base::beg); ausgabe << " alt - Neu: " << endepos - anfangpos << " Bytes"; } else cout << "\nAusgabedateifehler!" << endl; } else cout << "Eingabedateifehler oder " "Datei nicht gefunden " << endl; return 0; }
Dieser Code ist aus einem C++ Buch doch leider macht das Prog nicht das was es soll. Es soll die eingegebene Datei suchen (diese muss natürlich vorhanden sein) und in diese reinschreiben.
Obwohl die datei programm.lst vorhanden ist, sacht er mir das er
die Datei nicht finden kann
woran liegt das denn schon wieder !!??THX für alle antworten
-
Bist du sicher das die Datei im erwarteten Verzeichnis liegt. Versuchs testweise mal mit der Angabe des vollständigen Dateinamens.
-
hmm hab ich probiert is aber leider nich möglich...
wenn ich sowas schreibe wie I:\Programs\program.lst
dann spuckt der Compiler mir sowas aus:**
warning C4129: 'P' : unrecognized character escape sequence
usw ....
**
hat jemand noch eine Idee ?
ciao
-
PrOjEcT101 schrieb:
hmm hab ich probiert is aber leider nich möglich...
wenn ich sowas schreibe wie I:\Programs\program.lst
dann spuckt der Compiler mir sowas aus:**
warning C4129: 'P' : unrecognized character escape sequence
usw ....
**
hat jemand noch eine Idee ?
ciao
Das liegt daran dass der Compiler \P in I:\Programs\program.lst aufgrund des Backslashs als Escapesequenz behandeln will. Eine solche Sequenz existiert aber nicht.
richtig wärs so:
//------ snip ------ const char *path="I:\\Programs\\program.lst"; //oder zu nimmst std::string //verwenden des pfades //------ snap -------
-
danke für die Info !
Werd ich gleich ma ausprobieren.thx