gpt4 book ai didi

c++ - 异常处理

转载 作者:行者123 更新时间:2023-11-30 00:59:45 25 4
gpt4 key购买 nike

我收到以下核心转储消息:

在抛出“std::out_of_range”实例后调用终止 what(): basic_string::substr中止 - 核心转储

我正在从一个大文件中读取一个 14 位十六进制数。定期我注意到有这些空白行(嗯,我不确定它是什么。我该如何处理这个异常?也许是一个 try catch thingy?它看起来像下面这样:

123456789ABCDE
123456789ABCDE
123456789ABCDE

123456789ABCDE

我不确定是什么隐藏符号占用了空间,但它会导致问题,我不确定如何处理这个问题……有什么想法吗?也许我可以得到一个如何处理它的样本?

最佳答案

您需要发布更多代码,但从异常来看,您似乎正在逐行读取文件并将该行存储在 std::string 中,然后调用 std: :string::substr() 提取你想要的 14 个字符。

假设您的代码如下所示:

std::string str;         /* the lines are stored in this string */
std::string substring; /* extracted substring stored here */

/* Read file line by line */
// ...

substring = str.substr( index, 14 ); //extract 14 characters starting at 'index'

将此更改为:

if( str.size() > index ) {
substring = str.substr( index, 14 );
}

关于c++ - 异常处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3826570/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com