Heim > Backend-Entwicklung > C++ > Wie kann ich mit C zuverlässig Zeilen aus Textdateien mit gemischten Newline-Codierungen lesen?

Wie kann ich mit C zuverlässig Zeilen aus Textdateien mit gemischten Newline-Codierungen lesen?

Susan Sarandon
Freigeben: 2024-12-04 20:47:12
Original
828 Leute haben es durchsucht

How Can I Reliably Read Lines from Text Files with Mixed Newline Encodings Using C  ?

Umgang mit Newline-Codierungen mit std::ifstream

Bei der Arbeit mit Textdateien können inkonsistent codierte Newline-Codierungen eine Herausforderung darstellen. Dieser Artikel befasst sich mit dem Problem der ordnungsgemäßen Handhabung von LF-, CR- und CRLF-Zeilenenden mithilfe der Klasse std::ifstream.

std::istream& getline ( istream& is, string& str );
Nach dem Login kopieren

Die getline-Funktion liest eine Zeile bis zu einem Zeilenumbruchzeichen. Am Ende der Zeile können jedoch noch CR- oder CRLF-Zeichen verbleiben. Um dieses Problem zu beheben, schlägt der Artikel die Verwendung einer benutzerdefinierten Funktion namens „safeGetline“ vor:

std::istream& safeGetline(std::istream& is, std::string& t)
{
    // ...
}
Nach dem Login kopieren

Die Funktion „safeGetline“ durchläuft den Eingabestream, überprüft jedes Zeichen und erkennt die entsprechende Newline-Codierung. Es verarbeitet alle drei gängigen Zeilenumbruchzeichen: LF, CR und CRLF.

Um die Funktion „safeGetline“ zu testen, stellt der Artikel ein Beispielprogramm bereit, das eine Textdatei öffnet, ihre Zeilen mit „safeGetline“ liest und die Gesamtzahl zählt von Linien. Dies zeigt die Fähigkeit der Funktion, verschiedene Newline-Codierungen zu verarbeiten, die in realen Textdateien vorkommen.

Durch die Verwendung der Funktion „safeGetline“ können Programmierer Code schreiben, der alle gängigen Newline-Codierungsformate unterstützt, unabhängig von der Plattform oder Quelle der Datei Textdateien.

Das obige ist der detaillierte Inhalt vonWie kann ich mit C zuverlässig Zeilen aus Textdateien mit gemischten Newline-Codierungen lesen?. 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