Heim >Backend-Entwicklung >C++ >Wie lese ich mit ifstream::read() alle Bytes einer Datei in ein Char-Array?
Alle Bytes einer Datei in ein Char-Array lesen
Gegeben ist ein im inputFile-String gespeicherter Dateipfad und ein Zeichen-Array-Puffer mit einem Vordefinierte Größe, diese Frage untersucht, wie die Bytes der Datei in den Puffer eingelesen werden.
Der bevorzugte Ansatz für das allgemeine Lesen von Dateien ist die Verwendung von std::vector
ifstream::read() für Byte-Zugriff
Um die Datei als Byte-Stream zu erfassen, ifstream::read() wird verwendet:
<code class="cpp">// Open file std::ifstream infile(inputFile); infile.seekg(0, std::ios::end); size_t length = infile.tellg(); infile.seekg(0, std::ios::beg); // Read file infile.read(buffer, length);</code>
Grundlegendes zu Seekg() und Tellg()
seekg() und tellg() werden verwendet, um die zu bestimmen Dateigröße. Es ist jedoch wichtig zu beachten, dass tellg() nicht in allen Situationen die genaue Dateigröße garantiert.
Überlegungen zum Binärmodus
Bedenken Sie beim Öffnen der Datei Aktivieren des Binärmodus mit std::ios_base::binary, um Zeichenkonvertierungen zu verhindern, die sich auf die Byteanzahl auswirken können.
Umgang mit gepufferten Lesevorgängen
Wenn mehrere gepufferte Lesevorgänge verwendet werden, Es ist wichtig, die Anzahl der gelesenen Zeichen mit std::ifstream::gcount() zu verfolgen.
Das obige ist der detaillierte Inhalt vonWie lese ich mit ifstream::read() alle Bytes einer Datei in ein Char-Array?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!