Mein Programm liest eine Textdatei mit verschiedenen Textzeilen für eine Einstellungsdatei. Einige der Linien könnten sehr groß werden. Derzeit ist die Puffergröße 4096 Zeichen. Es ist möglich, dass einige Zeilen dies überschreiten könnten, sei es durch Bosheit oder aufgrund verschiedener Faktoren, die innerhalb des Programms arbeiten.Gibt es eine weit verbreitete C-Bibliothek zum Lesen von Name/Wert-Paaren aus einer Datei?
Die aktuellen Routinen waren ziemlich mühsam zu schreiben und jetzt möchte ich den möglichen Inhalt der Datei erweitern, die mehr von diesem langweiligen sich wiederholenden Code erfordern wird. (Dies ist für eine Einstellungstyp-Datei, bestehend aus name value
Paaren und dem gelegentlichen Abschnittsheader. Einige numerische Werte müssen aufgrund mehrfacher Genauigkeit als Strings gelesen werden).
Die Hauptsache möchte ich eine beliebige Länge Zeile ohne Pufferüberlauf lesen. Ich habe gerade entdeckt, dass getline das für mich tun kann, aber, um Himmels willen, eine Bibliothek, die mir diese ganze Langweilerei abnehmen wird?
edit:
Ich möchte nicht zwischen dem Namen und Werte, ein Leerzeichen zu setzen ein Zeichen =
gezwungen werden sollte als Trenn ausreichen.
Mit weit verbreiteter, ich meine die Bibliothek sollte in den Standard-Paketen der beliebten Linux-Distributionen verfügbar sein.
Ich bin bewusst, libconfig aber es scheint komplette Overkill für meine Anforderungen.
in diesem Fall schlage ich auch vor, es zu schreiben, es scheint trivial genug. Das einzige Problem ist, wie Sie Ihre Tabelle speichern, wenn dies reines C ist, dann keine std :: map für Sie, aber ich nehme an, Sie haben bereits eigene Datenstrukturen? –
Danke für den sscanf% [..] Tipp, aber nach dem Testen fehlt ein Caret: '"% [^:]:% [^ \ n] "', Prost, ich werde diesen Weg gehen . –
Korrigiert. Entschuldigung für das fehlende Caret. – piotr