質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.44%
C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Boost

Boost (ブースト)は、C++の先駆的な開発者のコミュニティ、 またそのコミュニティによって公開されているオープンソースライブラリのことを指します。

Q&A

解決済

1回答

2984閲覧

Boostライブラリで配列になっているfloat型を読み込みたい

退会済みユーザー

退会済みユーザー

総合スコア0

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Boost

Boost (ブースト)は、C++の先駆的な開発者のコミュニティ、 またそのコミュニティによって公開されているオープンソースライブラリのことを指します。

0グッド

1クリップ

投稿2020/09/03 06:01

提示コードですが.jsonファイルの"vertices"の二次元float配列を読み込んでvector型にでも格納したいのですがどうすればいいのでしょうか?

参考サイト: https://www.boost.org/doc/libs/1_74_0/libs/property_map/doc/property_map.html

.json

{ "version":1, "vertexformat":"PosNormTex", "shader":"BasicMesh", "textures":[ "Assets/Cube.png" ], "specularPower":100.0, "vertices":[ [-0.5,-0.5,-0.5,0,0,-1,0,0], [0.5,-0.5,-0.5,0,0,-1,1,0], [-0.5,0.5,-0.5,0,0,-1,0,-1], [0.5,0.5,-0.5,0,0,-1,1,-1], [-0.5,0.5,0.5,0,1,0,0,-1], [0.5,0.5,0.5,0,1,0,1,-1], [-0.5,-0.5,0.5,0,0,1,0,0], [0.5,-0.5,0.5,0,0,1,1,0], [-0.5,0.5,-0.5,0,0,-1,0,-1], [0.5,-0.5,-0.5,0,0,-1,1,0], [-0.5,0.5,-0.5,0,1,0,0,-1], [0.5,0.5,-0.5,0,1,0,1,-1], [-0.5,0.5,0.5,0,1,0,0,-1], [-0.5,0.5,0.5,0,0,1,0,-1], [0.5,0.5,0.5,0,0,1,1,-1], [-0.5,-0.5,0.5,0,0,1,0,0], [-0.5,-0.5,0.5,0,-1,0,0,0], [0.5,-0.5,0.5,0,-1,0,1,0], [-0.5,-0.5,-0.5,0,-1,0,0,0], [0.5,-0.5,-0.5,0,-1,0,1,0], [0.5,-0.5,-0.5,1,0,0,1,0], [0.5,-0.5,0.5,1,0,0,1,0], [0.5,0.5,-0.5,1,0,0,1,-1], [0.5,0.5,0.5,1,0,0,1,-1], [-0.5,-0.5,0.5,-1,0,0,0,0], [-0.5,-0.5,-0.5,-1,0,0,0,0], [-0.5,0.5,0.5,-1,0,0,0,-1], [-0.5,0.5,-0.5,-1,0,0,0,-1] ], "indices":[ [2,1,0], [3,9,8], [4,11,10], [5,11,12], [6,14,13], [7,14,15], [18,17,16], [19,17,18], [22,21,20], [23,21,22], [26,25,24], [27,25,26] ] }

ソースファイル

#include "Game.hpp" #include "Debug.hpp" #include "Windows.h" #include <string> #include <boost/property_tree/ptree.hpp> #include <boost/property_tree/json_parser.hpp> #include <boost/foreach.hpp> #include <boost/optional.hpp> #include <glew/include/GL/glew.h> #include "GL/gl.h" #include <fstream> using namespace boost::property_tree; Game::Game() { } bool Game::Initialization(HDC dc) { mDeviceContext = dc; std::string str = "Assets/Cube.json"; //メッシュを読み込む boost::property_tree::ptree pt; boost::property_tree::read_json(str,pt); BOOST_FOREACH(const ptree::value_type& child,pt.get_child("Cube.vertices")) { // printf("ああああ\n"); const ptree& info = child.second; boost::optional<float> id = info.get_optional<fint>("id"); std::cout <<"id: "<<id.get() <<std::endl; } return true; }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tiitoi

2020/09/03 07:20

boost 以外のライブラリでも読み込めればよいですか?
退会済みユーザー

退会済みユーザー

2020/09/03 07:31

一番楽なライブラリ等の名称を教えてくれますでしょうか?
guest

回答1

0

ベストアンサー

最初はvector型で読み込んで、個数が確定してからfloatの2次元配列に置き替える方がやり方としては綺麗だと思います。どのように読み込むかは個人の自由、やり方は色々あるので、そこは貴方次第です。
しかし、使い勝手はしっかりと考えた方が良いと思います。

投稿2020/09/03 06:07

stdio

総合スコア3307

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/09/03 06:09

いえ、jsonファイルの数値を読み込むにはどうしたらいいのでしょうか?とりえず検索にヒットしたライブラリを導入したのですが一番簡単な方法などありますでしょうか?
stdio

2020/09/04 00:14

とりあえず、文字列として読めているのなら、「stof」という関数で、一つづつ変換していく方法があります。ちなみにその検索したライブラリと言うのはどのようなものなのでしょうか?
退会済みユーザー

退会済みユーザー

2020/09/04 04:29

読み込み方法は自由といういことでね?プログラムの書き方と同じ?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.44%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問