からポイントで読む次OBJファイルで、私は読んしようとしているOBJファイルC++
#--- ObjWriter ---
v -0.599972 -0.599972 -0.599972
v -0.304591 -0.834531 0.539150
.
.
.
f 1 2 6
f 1 6 5
f 1 5 7
.
.
.
私はchar型のv次の頂点の値(3つの値を格納する機能を設定しようとしています)を、点のベクトル(Ptはax、y、zから構成されます)と面の値(char fの後の3つの値)から別の面のベクトル(Faceは3つのintで構成されます)これまでのところ、私は次の関数でこれを試みた:
void readFile(char *inFile)
{
ifstream inF(inFile);
string line;
while (getline(inF, line))
{
if (line[0] == 'v')
{
float x, y, z;
inF >> x >> y >> z;
// cout << x;
verts.push_back(Pt(x, y, z));
}
else if (line[0] == 'f')
{
int x, y, z;
inF >> x >> y >> z;
faces.push_back(Face(x, y, z));
}
else if (line[0] == '#')
continue;
}
}
声明、私は値を取得する場合、私は最初のx値を表示することにより、このメソッドをテストするたびに「-858993460」。どうすればこの機能を修正できますか? cout行の配置はコメントアウトされています。
'' -858993460'進で0xCCCCCCCC'です:このような
何か。これは、Visual Studioに付属しているCRTのデバッグバージョンが初期化されていないデータに割り当てるパターンです。 "最初のif文で*のx値を表示する" *の方法を使うことはできないので、私たちはあなたを助けたり説明を提供することはできません。 – IInspectable
私はそれを試していたところに置いた。また、すべての値が正常に格納されたことをテストする最良の方法は何ですか? – JMV12
このような問題を解決する適切なツールは、デバッガです。スタックオーバーフローを尋ねる前に、コードを一行ずつ進める必要があります。詳しいヘルプは、[小さなプログラムをデバッグする方法(Eric Lippert)](https://ericlippert.com/2014/03/05/how-to-debug-small-programs/)を参照してください。最低限、問題を再現する[最小、完全、および検証可能](http://stackoverflow.com/help/mcve)の例と、その問題を再現するためのデバッガ。 –