R6010使用错误;std:: stoi
R6010 Error When Using; std::stoi
我一直从std::stoi()
调用中获得错误R6010 - abort() has been called.
,现在已经找到了原因,我将从显示手头的代码开始;
std::string str;
for (int i = 0; i < numberofvalues; i++)
{
str = cmemblock[i];
if (cmemblock[i] == 'n' || cmemblock[i] == 'r')
{
cout << cmemblock[i] << endl;
}
else
{
int number = std::stoi(str);
cout << number;
}
}
此阶段程序的目的是读取。txt文件并以int格式显示输出,当。txt文件有超过1行数据时发生错误。
我还应该注意,cmemblock
是存储在CharArrayPtr格式的文本文件。
我需要的是如何用int格式表示所有行数据的一些指导。
std::stoi()
期望在传递的std::string
参数中看到单个数字输入,例如:
int x = std::stoi("12345");
不需要额外的字符、行尾、多行等。您可以使用从str
初始化的std::istringstream
:
std::string str = &(cmemblock[0]);
std::istringstream iss(str);
int number;
if(!(iss >> number)) {
// print error ...
}
如果要随后读取更多的值(以空格或'n'
分隔),您也可以进行循环:
std::vector<int> numbers;
int number;
while(iss >> number) {
// collect inputs
numbers.push_back(number);
}
if(!iss.eof()) {
// input format error occurred ...
}
相关文章:
- std::stoi 的版本拒绝任何非数字
- std::stoi 只转换前几个字符
- 我一直得到'std::invalid_argument'什么():似乎无缘无故地抛出 stoi 异常?
- 我想使用 std::stoi 函数在 cpp 中将字符串转换为整数,因为我想在字符串中找到不同数字的总和(在下级酶中)
- std::stoi 的基本参数
- get radix from std::stoi
- std::stoi 会导致段错误
- std::stoi 是如何实现的?
- libstdc++ 没有实现 std::stoi 吗?
- 相关功能家族的通用功能(例如std :: stoi,std :: stof,std :: stod等)
- 如何创建一个 std::function 作为方法参数,并将 std::stoi 作为默认值
- std::stoi, std::setbase, and an std::out_of_range error
- std::stoi 超出范围.从文件转换
- 为什么 std::stoi 和 std::array 不能使用 g++ c++11 编译
- std::strtol 和 std::stoi 有什么区别
- c++ 11 std::stoi在base不在[2,36](GCC)时静默失败
- Std::stoi不能被eclipse识别
- 使用ubuntu的c++中的std::stoi问题
- std::stoi 整数限制
- R6010使用错误;std:: stoi