我不断收到以下错误:Microsoft C++异常:std :: out_of_range错误?
Unhandled exception at 0x74BDD8A8 in FileName.exe: Microsoft C++ exception: std::out_of_range at memory location 0x004FA55C.
我已经做了一些搜索,但我没能解决这个问题。我确实缩小了这个事实,即out of range
错误来自我的string fdata
变量。这里是我的代码中的错误/异常发生:
void MyClass::MyMethod10()
{
string fdata;
char num[100];
int i = 0,k=0;
unsigned int m,j=0;
inputFile.open("sec1.txt", ios::in);
inputFile >> fdata;
while (j<fdata.length())
{
while (fdata.at(j) != '+')
{
if (fdata.at(j) != '*' && j<fdata.length())
{
num[k] = fdata.at(j);
k++;
}
else
{
num[k] = '\0';
m = atoi(num);
//cout << m << endl;
MyMethod22(m);
k = 0;
}
j++;
}
MyMethod22(43);
j++;
}
inputFile.close();
outputFile.open("sec2.txt", ios::out);
while (i<index)
{
outputFile << (char)data[i];
i++;
}
outputFile.close();
CleanBuffer();
}
的sec1.txt
文件包含以下数据
25750*23084*57475*15982*+57475*15982*+13364*15982*26260*+48840*32397*13364*15982*57475*11371*21876*+25197*
在while()
循环部分我的程序是能够从文件中正确读取数据。问题/错误/异常发生在我的程序从文件获取最后一个数字的地方。我猜测问题出在while()
循环中,但我无法弄清楚什么是错的。我所能做的就是在从文件中读取最后一个数字后,将错误范围缩小到string fdata
超出范围。我想知道有没有人能帮我解决这个问题,或者提出一些我可能错过的建议?
MSVC++在调试菜单中有一个选项“断开异常”。 – MSalters