Heim > Backend-Entwicklung > C++ > Wie kann ich Binärdateien in C effizient lesen und schreiben und dabei Pufferprobleme vermeiden?

Wie kann ich Binärdateien in C effizient lesen und schreiben und dabei Pufferprobleme vermeiden?

Barbara Streisand
Freigeben: 2024-12-12 20:45:14
Original
242 Leute haben es durchsucht

How Can I Efficiently Read and Write Binary Files in C   Avoiding Buffering Issues?

Binärdateien effektiv lesen und schreiben

Der Versuch, Binärdateien zu lesen und zu schreiben, bringt oft Herausforderungen mit sich, beispielsweise wenn der resultierende Puffer nur eine enthält Bruchteil der beabsichtigten Daten. Wenn dieses Problem auftritt, bietet dieser Artikel zwei alternative Ansätze, die diese Einschränkungen beheben.

C-spezifischer Ansatz

Der folgende C-Code verwendet die Kopie Funktions- und Stream-Iteratoren zum direkten Kopieren des Dateiinhalts ohne Pufferung:

#include <fstream>
#include <iterator>
#include <algorithm>

int main()
{
    std::ifstream input("C:\Final.gif", std::ios::binary);
    std::ofstream output("C:\myfile.gif", std::ios::binary);

    std::copy(
        std::istreambuf_iterator<char>(input),
        std::istreambuf_iterator<char>(),
        std::ostreambuf_iterator<char>(output));
}
Nach dem Login kopieren

Dieser Ansatz behält die bei die Integrität der Datei und gewährleistet eine genaue Datenübertragung.

Pufferung mit einem Vektor

Wenn Sie den Inhalt der Datei für Änderungen in einem Puffer benötigen, verwendet der folgende Code ein Vektor und Stream-Iteratoren:

#include <fstream>
#include <iterator>
#include <vector>

int main()
{
    std::ifstream input("C:\Final.gif", std::ios::binary);

    // Copies all data into buffer
    std::vector<unsigned char> buffer(
        std::istreambuf_iterator<char>(input), {});
}
Nach dem Login kopieren

Mit dieser Lösung können Sie den Inhalt der Datei bearbeiten im Speicher, bevor sie in die gewünschte Ausgabedatei geschrieben werden.

Das obige ist der detaillierte Inhalt vonWie kann ich Binärdateien in C effizient lesen und schreiben und dabei Pufferprobleme vermeiden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage