尝试提取不是结构的值的组件.C++
Attempt to extract a component of a value that is not a structure. c++
在这个问题的后面,我做了我的第一个调试(n00b)并得到错误:Attempt to extract a component of a value that is not a structure.
这意味着什么,对我的代码有什么影响?
if (questinfo.targetitem == "coins" && questinfo.targetitemquant >= coins)
{
cout << "You have enough coins to complete your task!" << endl;
questactive = false;
}
根据要求,结构定义如下:
struct questdata{
int ID;
string targetitem;
int targetitemquant;
string questgiver;
string questdesc;
};
questdata questinfo;
成员的值是从数组中分配的,如下所示:
questinfo.ID = atoi(queststuff[0].c_str());
questinfo.targetitem = queststuff[1];
questinfo.targetitemquant = atoi(queststuff[2].c_str());
questinfo.questgiver = queststuff[3];
questinfo.questdesc = queststuff[4];
我认为可能是ID
和targetitemquant
被视为 c 字符串,但错误发生在 targetitem
和 targetitemquant
上。
花了几个小时在这上面...这是一个非常简单的逻辑错误。:@
if (questinfo.targetitem == "coins" && questinfo.targetitemquant >= coins)
应该是
if (questinfo.targetitem == "coins" && questinfo.targetitemquant <= coins)
请注意>和<的差异。>
目前还不清楚您是否能够编译代码并在导致此错误的调试器中进行调试,或者您的意思是首先编译调试?
如果这是调试时问题,则发布调试器信息、出现此错误的上下文非常有用。很可能您具有相同的命名变量,该变量在此错误的上下文中不是结构。
>questinfo.targetitem == "coins"
正在将结构成员与字符串进行比较 - 这是不允许的......查看关于questinfo
结构的定义会有所帮助。
相关文章:
- 如何将 txt 文件中的行分隔为组件C++
- 使用不同的CRT将新的C++代码与旧的(二进制)组件隔离开来的最佳方法是什么
- 到连接组件算法的问题(递归)
- 两个 COM 组件中 ENUM 的重复条目
- 为什么 gcc 会产生这种奇怪的组件与叮当声?
- 使用 bfs 解决连接组件问题时得到错误的答案
- 如何在ECS框架中更新组件数据和通知系统
- 如何从ECS中的模板方法获取组件?
- 使用蓝牙组件将数据从Android手机传输到串行设备时出现问题
- 组件上的虚幻引擎可蓝图UFUNCTION会导致构建错误
- 在C++中访问蓝图类组件的正确方法是什么?
- 有关纯 ECS(实体组件系统)和更新系统的问题
- 提高基于组件的游戏引擎的效率
- 从组件的 std::type_index 获取派生最多的类型
- 我们可以将阈值应用于色彩空间模型的单个组件(如 RGB 和 LAB)吗?
- 如何通过 UActor组件获取演员列表?
- 在Visual Studio 2017中使用c ++组件构建python解决方案时出现问题
- 如何访问基类向量中的子类变量?(对于实体组件系统)
- 根据组件 1、2(和 3)对空间 (2D/3D) 向量进行排序
- 从 WinRT C++组件访问 COM 对象