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