Dies ist nur einige allgemeine Überlegungen als Antwort auf die letzte „Vielleicht wäre es besser, zu ... ":
Jede einfache Implementierung wird ein bisschen fragil, aber wenn Sie sehr gute Kontrolle über Eingabedatei haben, und das Risiko von möglichen Datenschaden stört Sie nicht zu viel (dh Schäden werden niedrig und leicht zu restaurieren/zu reparieren), können Sie sogar mit String - Ersatz davonkommen, nach "Age = 34 \ n" suchen und es durch "Age = 35 \ n" ersetzen (wenn es nur eine Age - Linie in der Datei, andernfalls müssen Sie zuerst die richtige Person finden) ... die ganze Datei zuerst in den Speicher lesen und dann nach dem Ersetzen zurückschreiben.
Wenn Sie JSON verwenden, erhalten Sie mehr Sicherheit über die Struktur (keine Chance, versehentlich "CarnAge = 34" anstelle von "Age = 34" zu ändern), doch JSON kann im Nur-Text-Editor bearbeitet werden (wenn Sie vorsichtig sind genug). Auch JSON ist eine sehr beliebte Möglichkeit, Daten mit Webdiensten auszutauschen. Und dieser Absatz gilt auch für XML, obwohl ich denke, dass JSON für Nicht-Programmierer etwas einfacher zu lernen ist. Also die "ini" würde tun, aber ich bevorzuge immer noch JSON.
Und schließlich, wenn das etwas ernster ist, wäre die Berücksichtigung einiger Datenbank sehr sinnvoll. Dies sind verifizierte Lösungen zum effektiven Speichern/Modifizieren/Abrufen von Daten, die mit Datei-E/A wesentlich effizienter sind als das Lesen/Schreiben ganzer Dateien (DB behandelt Dateien so, dass sie Inhalte durch Überschreiben nur von Teilen modifizieren können.) indem man Reserveflächen um den Computer herum hält und einen Mechanismus hat, um einen Teil einer Datei vollständig zu restrukturieren).Plus die meisten DBs sind ACID, so fügen Sie zusätzliche Robustheit zu Ihrer App "kostenlos". Sie können die Daten einfach nicht im Nur-Text-Format bearbeiten (Sie können aber trotzdem Daten in einigen Tabellen vorbereiten und über ein DB-Manager-Tool importieren).
Die einzigen Gründe, warum man eine gemeinsame DB vermeiden sollte - ich kann mir vorstellen - sind: 1) Leistung (in speziellen Fällen wird ein guter Programmierer die professionelle DB Engine übertreffen, aber die meiste Zeit ist es nicht den großen Aufwand wert) , 2) Projekt ist zu klein/Tutorial, also während die Integration zum Beispiel "sqlite" ist nicht so schwierig, nur das Lesen der ganzen Datei und Ersetzen der Zeichenfolge ist noch einfacher. Aber zum Beispiel schreibe ich meine C++ Projekte mit U ++ Framework, so SQL Zugabe wäre eine Brise von wenigen zusätzlichen Linien, keine große Mühe ...
Leser für 'ini' kann passen Zum Beispiel https://github.com/benhoyt/inih oder https://github.com/brofield/simpleini – sp2danny
Das wäre genau das, was ich brauche, aber ich kämpfe mit der Installation. Ich bekomme immer den Fehler 'undefinierter Verweis auf' INIReader :: INIReader (std :: string) ''. Ich habe die INIReader.h- und die ini.h-Dateien in der Include-Bibliothek und die INIReader.cpp-Datei neben der main.cpp-Datei platziert. Ich benutze C :: B. Ich weiß nicht, was ich vermisse. – Letokteren
kompilieren Sie tatsächlich und verknüpfen Sie mit 'INIReader.cpp' (siehe [hier] (http://www.cprogramming.com/compilingandlinking.html)) – sp2danny