离开this questionåŽé¢æˆ‘去了第一次调试(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
上。
ç”案 0 :(得分:2)
花了HOURS ......这是一个éžå¸¸ç®€å•çš„逻辑错误。 :@
if (questinfo.targetitem == "coins" && questinfo.targetitemquant >= coins)
应该是
if (questinfo.targetitem == "coins" && questinfo.targetitemquant <= coins)
注æ„&gt;ä¸çš„差异和&lt;。
ç”案 1 :(得分:0)
ç›®å‰è¿˜ä¸æ˜¯å¾ˆæ¸…æ¥šä½ æ˜¯å¦èƒ½å¤Ÿç¼–译代ç 并在调试器ä¸è°ƒè¯•å¯¼è‡´æ¤é”™è¯¯ï¼Œæˆ–者调试是å¦æ„味ç€é¦–先编译?
如果这是调试时间问题,请å‘布调试器信æ¯ï¼Œå‡ºçŽ°æ¤é”™è¯¯çš„上下文éžå¸¸æœ‰ç”¨ã€‚很å¯èƒ½ä½ 有相åŒçš„命åå˜é‡ï¼Œå®ƒä¸æ˜¯æ¤é”™è¯¯ä¸Šä¸‹æ–‡ä¸çš„结构。
ç”案 2 :(得分:-1)
questinfo.targetitem == "coins"
æ£åœ¨å°†ç»“æž„æˆå‘˜ä¸Žå—符串进行比较 - 这是ä¸å…许的......
查看questinfo
结构上的定义会很有帮助。