Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/151.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;超出范围错误,错误描述如下_C++ - Fatal编程技术网

C++ C++;超出范围错误,错误描述如下

C++ C++;超出范围错误,错误描述如下,c++,C++,运行下面的代码时,我收到一个std::out_of_range异常。以下是准确的错误文本: 未处理的异常在学生项目.0x7690A6E2中:微软C++异常:STD::OXOFY在内存位置0x00 AF2BC.< /P>范围 我不知道我的代码出了什么问题。这就是向量的定义方式吗?向量的语法有什么问题吗 如何修复该问题,使异常不再发生 void花名册::parseInput(字符串输入){ std::矢量数据持有者; std::stringstream输入流(rawInput); while(inp

运行下面的代码时,我收到一个
std::out_of_range
异常。以下是准确的错误文本:

未处理的异常在学生项目.0x7690A6E2中:微软C++异常:STD::OXOFY在内存位置0x00 AF2BC.< /P>范围 我不知道我的代码出了什么问题。这就是向量的定义方式吗?向量的语法有什么问题吗

如何修复该问题,使异常不再发生

void花名册::parseInput(字符串输入){
std::矢量数据持有者;
std::stringstream输入流(rawInput);
while(inputstream.good())
{//分析每个逗号上的字符串
字符串输入;
getline(inputstream,输入',');
数据保持器。推回(输入);
}
string studentID=dataHolders.at(0);
string firstName=数据持有者。at(1);
字符串lastName=dataHolders.at(2);
字符串email=dataHolders.at(3);
int age=stoi(数据持有人,见第(4))条);
int DayInCourse1=stoi(数据持有者在(5));
int DayInCourse2=stoi(数据持有人,见第(6))条);
int DayInCourse3=stoi(数据持有者在(7));
degreeProgram degreeProgram=convert(dataHolders.at(8));/(有人告诉我这可能是问题所在)
字符串personalInformation=数据持有者。at(9);
添加(学生ID、名、姓、电子邮件、年龄、DayInCourse1、DayInCourse2、DayInCourse3、,
学位程序、个人信息);
}
degreeProgram花名册::转换(字符串str)
{//正在将字符串类型转换为枚举
如果(str==“证券”)返回证券;
else if(str==“NETWORK”)返回网络;
否则如果(str==“软件”)返回软件;
否则返回无效;
}

我想说的是,在尝试读取数据之前,您需要确保您的数据持有者拥有正确数量的条目(10)。

我想说,在尝试读取它们之前,您需要确保您的数据持有者拥有正确数量的条目(10)。

您在运行时遇到
std::OU of_range
异常。这可能是由以下电话之一引起的:

如果pos不在容器的范围内,则抛出std::out_of_range类型的异常

这意味着您的
向量
所包含的字符串元素没有您期望的那么多。因此,请仔细检查
rawInput
参数的值是否正确。循环完成后,在访问字符串元素之前,可以检查
向量的
size()
,例如:

while(…)
{
...
数据保持器。推回(输入);
}
如果(dataHolders.size()>=10)
{
字符串studentID=数据持有者[0];
...
}
其他的
{
//数据持有者的字符串太少,请执行其他操作!
...
}
另一方面,您的
while
循环应该更像这样:

//解析每个逗号上的字符串
字符串输入;
while(getline(inputstream,inputstream,,'))
{
数据保持器。推回(输入);
}

您在运行时遇到
std::out\u of \u range
异常。这可能是由以下电话之一引起的:

如果pos不在容器的范围内,则抛出std::out_of_range类型的异常

这意味着您的
向量
所包含的字符串元素没有您期望的那么多。因此,请仔细检查
rawInput
参数的值是否正确。循环完成后,在访问字符串元素之前,可以检查
向量的
size()
,例如:

while(…)
{
...
数据保持器。推回(输入);
}
如果(dataHolders.size()>=10)
{
字符串studentID=数据持有者[0];
...
}
其他的
{
//数据持有者的字符串太少,请执行其他操作!
...
}
另一方面,您的
while
循环应该更像这样:

//解析每个逗号上的字符串
字符串输入;
while(getline(inputstream,inputstream,,'))
{
数据保持器。推回(输入);
}

有人告诉你某件事出了问题,但你不知道那件事到底是什么?古怪的您是否从编译器中得到错误?如果是这样的话,它们到底是什么?嗨,有人告诉我向量本身是错误的,在我打开括号的那一行,我说这可能是个问题。这是一个准确的猜测,这段代码是一个更大的编译程序的一部分,但在运行时抛出一个异常?您使用的短语“被告知”含糊不清,令人困惑。那么您是否有超出范围的异常或编译错误?请复制并粘贴到你的问题中,这样我们就知道你在问什么了。是的,我是一名新的编程学习者,不知道如何在这里完整地编写代码。你被告知有些地方出了问题,但不知道那是什么?古怪的您是否从编译器中得到错误?如果是这样的话,它们到底是什么?嗨,有人告诉我向量本身是错误的,在我打开括号的那一行,我说这可能是个问题。这是一个准确的猜测,这段代码是一个更大的编译程序的一部分,但在运行时抛出一个异常?您使用的短语“被告知”含糊不清,令人困惑。那么您是否有超出范围的异常或编译错误?请复制并粘贴到您的问题中,这样我们就知道您在问什么了。是的,我是新学习编程的,不知道如何在这里完整地编写代码。我尝试将条目数改为10,是否正确使用stoi问题不在于
stoi()
。您的
数据持有者
可能没有您期望的那么多字符串。在
循环完成后检查其
size()
值。只需更新degreeProgram就是一个枚举“degreeProgram就是一个枚举”-该信息与手头的问题无关我尝试将条目数改为10,我是否正确使用stoi问题不在于
stoi()
。您的
数据持有者
可能没有您期望的那么多字符串。