1

错误在输出的底部。

 Output:

欢迎来到我的拼字游戏!

a) 将单词添加到游戏数据库 b) 删除单词 c) 配置倒计时 d) 开始游戏 e) 选择游戏关卡 f) 查看分数图表 g) 退出 请输入字母选择:d

Game Started 在抛出 'std::out_of_range' what() 的实例后调用终止:vector::_M_range_check apple orange melon lemondinosaur RUN FINISHED; 中止;实时:1s;用户:0ms;系统:0ms

下面的代码是我的输出,我的代码有什么问题可以帮助我谢谢,任何帮助将不胜感激!干杯!

4

3 回答 3

5
levelList.at(rand()% wordList.size());

有时这可能超出范围,因为wordList可能大于levelList.

大概,你的意思是

levelList.at(rand()% levelList.size());
                     ^^^^^^^^^

您也没有初始化在 中level声明的变量startGame,因此它很可能levelList是完全空的。大概,您想使用函数参数来指定级别。

于 2013-07-15T12:29:38.503 回答
2

如果您的 word 文件包含少于两个字符的任何单词,levelList则将比 短wordList,所以这一行

levelList.at(rand()% wordList.size());

会导致你说的问题。

于 2013-07-15T12:29:53.567 回答
0

您没有为设置为 0 的变量“级别”显式分配值。您的 switch 语句不涵盖这种情况,因此您的 levelList 为空。然后,您尝试访问导致超出范围消息的零长度级别列表中的条目。

于 2013-07-15T12:53:32.847 回答