繁体   English   中英

错误:“ System.Runtime.InteropServices.SEHException”

[英]error: 'System.Runtime.InteropServices.SEHException'

我正在尝试以这种方式打开一个文件,但在标记的行上得到该异常:

std::string str = "c:/qsdqsdsq/qsdqsdsq/qsdqsd.txt+++++qsdqsdqsd";
FILE *abc = fopen(str.substr(0, str.find_first_of("+++++")).c_str(), "w+b"); // marked line

例外:

Project.exe中发生了类型为'System.Runtime.InteropServices.SEHException'的未处理异常

附加信息:外部组件引发了异常。

调试器指向xstring文件的第2296行(仅包含} ,位于_Xout_of_range("invalid string position");行之后)。

请问该如何解决?

非常感谢!

如果start不在[0, str.length)范围内[0, str.length)或者start + length[0, str.length]范围内[0, str.length)则抛出此异常。 由于start为0,并且在这种情况下未找到任何字符时, find_first_of返回有效索引或std::string::npos ,这意味着std::string::nposfind_first_of返回。 因为您发布的代码无法做到这一点,所以我认为您发布的不是导致异常的实际代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM