Wenn ich dies tun:Wie kann ich erkennen, dass eine Binärdatei vollständig konsumiert wurde?
ofstream ouput("foo.txt");
output << 13;
output.close();
ifstream input("foo.txt");
int dummy;
input >> dummy;
cout << input.good() << endl;
ich das Ergebnis bekommen: "0"
Allerdings, wenn ich dies tun:
ofstream ouput("foo.txt", ios_base::binary);
auto dummy = 13;
output.write(reinterpret_cast<const char*>(&dummy), sizeof(dummy));
output.close();
ifstream input("foo.txt", ios_base::binary);
input.read(reinterpret_cast<char*>(&dummy), sizeof(dummy));
cout << input.good() << endl;
Ich werde das Ergebnis: „1 "
Das ist frustrierend für mich. Muss ich den Puffer ifstream
untersuchen, um festzustellen, ob er vollständig verbraucht wurde?
@Downvoter Bitte geben Sie den Grund für den Downvote an. –
Versuchen Sie, die Dateien für die binäre Ausgabe und Eingabe zu öffnen. – Peter
@Peter Ugh, habe das lokal gemacht. Kopieren Sie einfach für die Antwort eingefügt. –