Angenommen, eine Datei befindet sich unter „C:MyFile.csv“ und ein Zeichenarray-Puffer von Größe 10.000, wie können Sie alle Bytes aus der Datei effizient in den Puffer einlesen?
Betrachten Sie den folgenden Ansatz, der in diesem Szenario im Allgemeinen der Verwendung von getline() vorgezogen wird:
<code class="cpp">// Open the file in binary mode to preserve byte-by-byte fidelity std::ifstream infile("C:\MyFile.csv", std::ios_base::binary); // Determine the file's size infile.seekg(0, std::ios::end); size_t file_size = infile.tellg(); infile.seekg(0, std::ios::beg); // Ensure that the buffer is of sufficient size if (file_size > sizeof(buffer)) { // Handle the case where the file exceeds the buffer's capacity } // Read the entire file's contents into the buffer infile.read(buffer, file_size); // Obtain the actual number of bytes read from the file std::streamsize bytes_read = infile.gcount();</code>
Zusätzliche Hinweise:
Das obige ist der detaillierte Inhalt vonWie lese ich effizient alle Bytes aus einer Datei in ein Zeichenarray in C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!