Mam plik konfiguracyjny o następującej treści:JsonCpp Pisanie z powrotem do pliku Json
{
"ip": "127.0.0.1",
"heartbeat": "1",
"ssl": "False",
"log_severity": "debug",
"port":"9999"
}
użyłem JsonCpp do odczytywania zawartości powyżej pliku konfiguracyjnym. Odczytywanie zawartości pliku konfiguracyjnego działa dobrze, ale zapisywanie zawartości w pliku konfiguracyjnym kończy się niepowodzeniem. Mam następujący kod:
#include <json/json.h>
#include <json/writer.h>
#include <iostream>
#include <fstream>
int main()
{
Json::Value root; // will contains the root value after parsing.
Json::Reader reader;
Json::StyledStreamWriter writer;
std::ifstream test("C://SomeFolder//lpa.config");
bool parsingSuccessful = reader.parse(test, root);
if (!parsingSuccessful)
{
// report to the user the failure and their locations in the document.
std::cout << "Failed to parse configuration: "<< reader.getFormattedErrorMessages();
}
std::cout << root["heartbeat"] << std::endl;
std::cout << root << std::endl;
root["heartbeat"] = "60";
std::ofstream test1("C://SomeFolder//lpa.config");
writer.write(test1,root);
std::cout << root << std::endl;
return 0;
}
Kod drukuje prawidłowe wyjście konsoli, jednak plik konfiguracyjny jest pusty, gdy ten kod jest wykonywany. Jak sprawić, by ten kod działał?
Co się stanie, jeśli explicite zamkniesz() testowy strumień wejściowy? –
Zamknięcie pliku działało. Tak głupio ode mnie: P. Czy potrafisz napisać odpowiedź, abym mógł ją zaakceptować, aby inni wiedzieli właściwą odpowiedź? – Pant
zrobione, "przeniesiłem" komentarz podpowiedzi do odpowiedzi. –