Effizientes Einlesen von Dateiinhalten in einen String in C
In C wird im Gegensatz zu Skriptsprachen wie Perl der gesamte Inhalt einer Datei gelesen in einen String in einem einzigen Vorgang umgewandelt werden kann, ist nicht direkt verfügbar. Es gibt jedoch effiziente Methoden, um diese Funktionalität zu erreichen.
Um Dateiinhalte in einen String einzulesen, können wir die Dateieingabeverarbeitungsfunktionen von C nutzen. Hier ist eine effiziente Lösung:
<code class="cpp">#include <fstream> #include <string> int main(int argc, char** argv) { std::ifstream ifs("myfile.txt"); std::string content( (std::istreambuf_iterator<char>(ifs) ), (std::istreambuf_iterator<char>() ) ); return 0; }</code>
Der Code verwendet einen Eingabedateistream, um den Inhalt der Datei mit dem Namen „myfile.txt“ zu lesen und ihn in einer Zeichenfolgenvariablen mit dem Namen „content“ zu speichern. Der zum Zuweisen des Dateiinhalts zur Zeichenfolge verwendete Ausdruck lautet:
<code class="cpp">std::string content( (std::istreambuf_iterator<char>(ifs) ), (std::istreambuf_iterator<char>() ) );</code>
Dieser Ausdruck verwendet Iteratoren, um Zeichen für Zeichen aus dem Eingabedateistream zu lesen und die Zeichenfolge zu erstellen. Der erste Iterator wird mit dem Eingabedateistream initialisiert, während der zweite Iterator ein standardmäßig konstruierter „End“-Iterator ist, der das Ende der Datei angibt.
Alternativ können Sie den folgenden Code verwenden, um den Wert von zu überschreiben eine vorhandene String-Variable:
<code class="cpp">std::string content; content.assign( (std::istreambuf_iterator<char>(ifs) ), (std::istreambuf_iterator<char>() ) );</code>
Dieser Code überschreibt den Wert der vorhandenen String-Variablen „content“ mit dem Inhalt der Datei.
Das obige ist der detaillierte Inhalt vonWie kann ich den gesamten Inhalt einer Datei effizient in eine Zeichenfolge in C einlesen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!