这个IF声明有什么问题吗? (C ++)

时间:2014-02-25 11:18:08

标签: c++ if-statement

这个IF声明本身有什么问题吗?因为它一直都是正确的,所以如果我的某些地方的语法错误而且它扔掉了,我就会徘徊?

if (questinfo.targetitem == "coins" && questinfo.targetitemquant >= coins)
{
    cout << "You have enough coins to complete your task!" << endl;
    questactive = false;
}

questinfo.targetitemstring(不是字符数组) questinfo.targetitemquantint questactivebool coinsint

目前

targetitemquant从不大于coins,但语句总是完成为真。请告诉我,我的语法有问题,否则这就更难以确定:(。谢谢。

2 个答案:

答案 0 :(得分:1)

如果语法错误,编译器将产生错误,因此无论如何你都会知道。

如果它正在编译但没有按预期工作,则会出现逻辑错误,在这种情况下,您可以使用调试器来解决原因。

它似乎不是语法错误,所以我建议调试它。

答案 1 :(得分:1)

从语法上讲,上面的代码是正确的,因此它编译。 我假设你已经彻底破坏了你的代码&amp;无论你说的是什么,我在这里看到的可能性是,,, 可能是您存储的值大于signed int。 因此,导致溢出代表负值.. 如果targetitemquant是非负值,请尝试使用unsigned int数据类型..