Решил попробовать в работе библиотеку JsonCpp, написал простенькую программу:
#include
Но после компиляции и запуска программа не доходит до вывода root, а бесконечно дает вводить текст. Очевидно, проблема в строке std::cin >> val["foo"], но строка взята из примера в документации, и там та же проблема. Даже не могу представить, в чем может быть проблема. Здесь в самом низу (последняя функция) можно увидеть реализацию этого самого operator>>
Ответ
Дело вот в этой строке в библиотеке:
ssin << sin.rdbuf();
Это яд: она пытается скопировать весь файл целиком, поэтому чтобы закончить ввод, вы должны скормить терминалу EOF (^D на никсах, ^Z на Windows). Короче говоря, не используйте эту функцию, а еще лучше не используйте эту библиотеку - rapidjson, например, не страдает от таких дефектов.
Комментариев нет:
Отправить комментарий