我在解析文件时遇到了一些问题
我要解析的文件的最后两行是:
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仍然是上一行中的相同命令,这给我带来了一些麻烦。
有没有办法检查这个?如果是,如何?