ファイルの解析に問題があります
解析したいファイルの最後の 2 行は次のとおりです。
f 814/866/896 1035/1100/989 817/965/898
[何も、\n からの効果]
これは私がファイルを読む方法です:
while(!inFile.eof())
{
inFile>>sCommand;
if(sCommand == L"#")
{}
else if(sCommand == L"f")
{
int iPos, iTex, iNorm;
iPos=iTex=iNorm = -1;
for(auto face=0; face<3; ++face)
{
inFile>>iPos;
--iPos;
if(inFile.peek() == L'/')
{
inFile.ignore();
inFile>>iTex;
--iTex;
if(inFile.peek() == L'/')
{
inFile.ignore();
inFile>>iNorm;
--iNorm;
}
}
objVertexIndex iObj;
iObj.iPos=iPos;
iObj.iTex=iTex;
iObj.iNorm=iNorm;
this->AddVertex(iObj);
}
m_MaterialIndices_C.push_back(m_CurrentMaterial);
} //END IF
inFile.ignore( 1000, '\n' );
} //END WHILE
inFile.close();
ただし、何も含まれていないファイルの最後の行に問題があります。ファイルの最後の行の前にinFile.ignore( 1000, '\n' );
発生し、検出されると予想std::fstream::eof()
されますが、何らかの理由で検出されません。またsCommand
、行に何もない場合でも、前の行と同じコマンドになるようで、問題が発生しています。
これを確認する方法はありますか?はいの場合、どのように?