我正在查询mysql表,然后遍历结果。

其中一个字段的值为“0”,因此当我尝试以下操作时,它不起作用!

while ((row2 = mysql_fetch_row(resultset2)) != NULL) {
    if (row2[2] != "0") {
        // the field has a value of 0, but it's still executing the code here!
    } else {
        // should be executing this code
    }
}

我知道C/C++在涉及到变量(取消链接php)时非常严格,但是我无法弄清楚这一点。有人有什么想法吗?

最佳答案

您正在将row2[2]的指针char与指向常量char数组"0"的指针进行比较。

如果您知道strcmp(row2[2], "0") != 0始终是整数的字符串表示形式(并且不能是SQL std::string(row2[2]) != "0"值),请使用atoi(row2[2]) != 0(C解决方案),row2[2](C++解决方案)或NULL

关于c++ - linux c/c++-奇怪的if/else问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5408733/

10-11 18:34