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

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

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

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

解決済

std::vectorで.size();がゼロになってしまう原因が知りたい。

退会済みユーザー

退会済みユーザー

総合スコア0

C++

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

1回答

0評価

0クリップ

932閲覧

投稿2020/09/28 12:02

コンストラクタの////コメント部のコードですがprintf();でなぜ0が帰って来てしまうのでしょうか?GetVertex();関数が悪いのでしょうか?
画面には形のおかしいポリゴンが描画されるため値は確実に代入されてると思われるのですが?表示方法が悪いのでしょうか?

cpp

//コンストラクタ Game::Game() { mIsRunLoop = true; keyMode = KeyState::Rotate; //回転 move_rotate.x = 0; move_rotate.y = 0; move_rotate.z = 0; //平行移動 move_transform.x = 0; move_transform.y = 0; move_transform.z = -2; /////////////////////////////////////////////////////////// vertex = GetVertex("Cube.obj"); size_t ttt = vertex.size(); printf("%llu\n",ttt); ////////////////////////////////////////////////////////// // std::cout << t2 << std::endl<<std::endl; // printf("%d\n\n", (int)t); //printf("sizeo %l\n\n",vertex.size() / sizeof(float)); camera_pos = glm::vec3(0,0,0); }

cpp

//頂点属性を取り出す。頂点座標だけ std::vector<Game::VertexAttribute> Game::GetVertex(const char* filename) { //ファイル読み込み //const char* namefile = "Cube.obj"; std::ifstream ifs(filename); //vector<float> position; int line = 0; std::string str; std::vector<VertexAttribute> v; if (ifs.is_open() == true) { while (std::getline(ifs, str)) { char* find = NULL; if ((find = (char*)strstr(str.c_str(), "v ")) != NULL) { find++; float a = 0; float b = 0; float c = 0; sscanf_s(find, "%f %f %f", &a, &b, &c); // v.emplace_back(); struct VertexAttribute e; e.Position[0] = a; e.Position[1] = b; e.Position[2] = c; v.push_back(e); line++; } } } else { printf("Error ファイル名:%s \n", filename); } printf("ああああ: %llu\n",v.size()); return v; }

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

maisumakun

2020/09/28 12:10

「 printf("ああああ: %llu\n",v.size());」の方は正しい値が出ているのですか?
退会済みユーザー

退会済みユーザー

2020/09/29 03:37

0と表示されてしまうのでおかしいと思いました。std::cout << を使ってフォーマット指定子の間違えをなくしましたがやっぱりおかしいのでよく見たら自己解決のような間違えでした。

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

C++

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