C++ SIGSEGV循环中的分段错误

Tom*_*Tom 1 c++ file-io while-loop segmentation-fault

我有以下代码,最终导致分段错误.

    for (int a=0; a<inputFileList.size(); a++)
    {
        fileLines = readFile(inputFileList[a].c_str());
        for (int i = 0; i < fileLines.size(); i++)
        {
            if (fileLines[i].find("text") != string::npos)
            {
                bool warnFound = false, errFound = false;
                i++;
                while (fileLines[i].find("message") == string::npos && i < fileLines.size())
                {
                    if (fileLines[i].find("error") != string::npos)
                        errFound = true;
                    else if (fileLines[i].find("warning") != string::npos)
                        warnFound = true;
                    i++;
                }
                i--;
                if (errFound)
                    errCtr++;
                else if (warnFound)
                    warnCtr++;
                else
                    okCtr++;
            }
        }
        fileLines.clear();
    }
Run Code Online (Sandbox Code Playgroud)

当我删除while循环时,我不再得到此错误.但我不知道这个循环有什么问题.

谢谢您的支持

Gun*_*iez 6

应该读一会儿

while (i < fileLines.size() && fileLines[i].find("message") == string::npos)
Run Code Online (Sandbox Code Playgroud)