000
16.06.2004, 19:02 Uhr
~Gast
Gast
|
Hallo, ich wollte ein Programm schreiben, dass eine Datei kopiert. Das ist mir auch gelungen. Jetzt möchte ich aber eins schreieben, dass eine Schleife beinhaltet um die Datei unendlich oft zu kopieren. Als Schleifenmechanismus habe ich while (true) verwendet, es klappt aber nicht. Ich vermute weil ds Programm in 2 Teile aufgeteilt ist und dazwischen eine Klammer und das deswegen die Schleife bloß für den obereren Teil des Programms gilt(?????)
Aber schauts euch selbst an!
#include<string> #include<cstdlib> // für exit( ) #include<fstream> #include<iostream>
using namespace std;
int main( ) { // Definieren und Öffnen der Eingangsdatei ifstream Quelle; // Datentyp für Eingabestrom (s.o.)
string Quelldateiname;
Quelldateiname = "C:\\morpheus401.exe";
// Datei öffnen: // nicht portabel: Quelle.open(Quelldateiname.c_str()); Quelle.open(Quelldateiname.c_str(), ios::binary|ios::in); // Ohne {\tt ios::binary} sind nur Textdateien kopierbar // (gilt nur für MSDOS/Windows)
if (!Quelle) { // Fehlerabfrage cerr << Quelldateiname << " kann nicht geöffnet werden!\n"; exit(-1); }
string Zieldateiname; while (true) Zieldateiname = "C:\\morpheus4023.exe"; ofstream Ziel(Zieldateiname.c_str(),ios::binary|ios:ut); if (!Ziel) { // Fehlerabfrage cerr << Zieldateiname << " kann nicht geöffnet werden!\n"; exit(-1); }
system("Pause"); char ch; while (Quelle.get(ch)) Ziel.put(ch); // zeichenweise kopieren } // Dateien werden am Programmende automatisch geschlossen.
Bitte helft mir, wie ich die Schleife richtig einsetzen kann |