Heim >Backend-Entwicklung >C++ >Wie lese ich Dateiinhalte als Zeichenarray in C mit ifstream::read() und istreambuf_iterator?
So lesen Sie Dateiinhalte als Zeichenarray in C
Hintergrund
Diese Frage fragt, wie ein Zeichen-Array-Puffer mit den Bytes einer Datei namens inputFile gefüllt wird. Der Benutzer ist auf Schwierigkeiten mit anderen vorgeschlagenen Ansätzen gestoßen, die getline() anstelle von ifstream::read() verwenden.
Lösung
Es gibt einige Ansätze, um dieses Problem zu beheben Aufgabe:
Verwenden von ifstream::read()
Diese Methode beinhaltet:
Beispielcode:
<code class="cpp">// Open file in binary mode std::ifstream infile("C:\MyFile.csv", std::ios_base::binary); // Get file length infile.seekg(0, std::ios::end); size_t length = infile.tellg(); infile.seekg(0, std::ios::beg); // Read file infile.read(buffer, length);</code>
Verwendung von istreambuf_iterator
Dieser Ansatz ist moderner und verwendet Iteratoren zum Lesen der Datei:
Beispiel Code:
<code class="cpp">// Create iterators std::istreambuf_iterator<char> begin(infile); std::istreambuf_iterator<char> end; // Create vector std::vector<char> contents(begin, end); // Copy vector to array std::copy(contents.begin(), contents.end(), buffer);</code>
Überlegungen
Das obige ist der detaillierte Inhalt vonWie lese ich Dateiinhalte als Zeichenarray in C mit ifstream::read() und istreambuf_iterator?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!