当前位置:  开发笔记 > 编程语言 > 正文

Microsoft C++异常:std :: out_of_range错误?

如何解决《MicrosoftC++异常:std::out_of_range错误?》经验,为你挑选了1个好方法。

我一直收到以下错误:

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

sec1.txt文件包含以下数据

25750*23084*57475*15982*+57475*15982*+13364*15982*26260*+48840*32397*13364*15982*57475*11371*21876*+25197*

while()循环部分,我的程序能够从文件中正确读取数据.问题/错误/异常发生在我的程序从文件中获取最后一个数字的位置.我猜测问题是在while()循环中,但我无法弄清楚什么是错的.我所能做的就是在string fdata从文件中读取最后一个数字后将错误范围缩小到超出范围.我想知道是否有人可以帮助我解决这个问题或建议我可能错过的东西?



1> Ishamael..:

你遇到的实际问题是:

   while (fdata.at(j) != '+')
   {
      ...
      j++;
   }

请注意,在检查是否在范围内之前,请增加j并尝试读取j字符j.要解决此问题,请按以下方式进行更改:

   while (j < fdata.size() && fdata.at(j) != '+')
   {
      ...
      j++;
   }

推荐阅读
U友50081205_653
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有