Problem mit ifstream / fstream [erledigt]

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
heinz
Beiträge: 535
Registriert: 20.12.2007 01:43:49

Problem mit ifstream / fstream [erledigt]

Beitrag von heinz » 19.05.2019 21:25:38

Hallo Zusammen,

ich habe hier ein kleines Problem und wuerde mich freuen, wenn mir jemand eine Loesung dafuer haette.

Folgender Code liest einfach eine Datei Zeichen fuer Zeichen und schreibt sie in eine andere Datei.
Das Funktioniert soweit auch wie es soll.
Allerdings wird das letzte Zeichen der Quelldatei am Ende zweimal geschrieben, sodas die Zieldatei um ein Byte laenger ist als die Quelle.

Warum ist das so und wie kann ich es unterbinden?

Code: Alles auswählen

std::ifstream load(quelldateiname,std::ios::in);

std::fstream save;
save.open(zieldateiname,std::ios::out);

char Z;
while(!load.eof())
{
  load.get(Z);
  save<<Z;
}

load.close();
save.close();
Gruss, heinz
Zuletzt geändert von heinz am 20.05.2019 13:19:19, insgesamt 1-mal geändert.

Benutzeravatar
heinz
Beiträge: 535
Registriert: 20.12.2007 01:43:49

Re: Problem mit ifstream / fstream

Beitrag von heinz » 20.05.2019 13:19:02

Habe etwas spaeter mal mein Gehirn eingeschaltet und bin von selbst darauf gekommen.
Habe es jetzt so:

Code: Alles auswählen

while(true)
{
  load.get(Z);
  if(load.eof()){break;}
  save<<Z;
}
Gruss, heinz

Antworten