C++ C++;环路中的SIGSEGV分段故障
我有下面的代码,它最终导致了一个分段错误C++ C++;环路中的SIGSEGV分段故障,c++,file-io,while-loop,segmentation-fault,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::
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();
}
for(inta=0;awhile可能应该读取
while (i < fileLines.size() && fileLines[i].find("message") == string::npos)
while(i
while应该是
while (i < fileLines.size() && fileLines[i].find("message") == string::npos)
while(i
这是:
while (fileLines[i].find("message") == string::npos && i < fileLines.size())
while(fileLines[i].find(“message”)==string::npos&&i
应该是:
while (i < fileLines.size() && fileLines[i].find("message") == string::npos )
while(i
这是:
while (fileLines[i].find("message") == string::npos && i < fileLines.size())
while(fileLines[i].find(“message”)==string::npos&&i
应该是:
while (i < fileLines.size() && fileLines[i].find("message") == string::npos )
while(i
我不确定这是否与您遇到的错误有关,但第7行的I++
似乎有问题。即使I==fileLines.size()-1
,它也可能会增加I,所以fileLines[I].find(“消息”)下一行的
将访问一个不存在的项目。我不确定这是否与您遇到的错误有关,但第7行的
I++似乎有问题。即使I==fileLines.size()-1
,它也可能会增加I,因此fileLines[I]。find(“消息”)
下一行将访问一个不存在的项目