简单的if循环不能正常工作

时间:2015-06-05 16:30:37

标签: c++ if-statement

我有一个非常简单的if循环,它接受一个名为data的数组(向量矢量),读取EACH行的第0个元素(即data [i] [0]个元素),并输出第5个元素对于特定行IFF,它满足第一个元素等于整数pid的条件(用户在代码中先前定义。)如果行不以该元素开头,我希望它不输出任何内容。

以下是此循环的代码:

for(int i = 0; i < data.size(); i++)  {
    if(data[i][0] = pid) {
        cout << data[i][5] << endl;
    }
}

然而,当我运行程序时,它输出每行的第5个元素,而不仅仅是以pid开头的那个元素。 AKA,c ++似乎完全无视我的if语句。

有没有人对此有答案?

提前谢谢!

2 个答案:

答案 0 :(得分:5)

您需要在==条件中使用=代替if

if(data[i][0] == pid) 

否则您只是将pid的值分配给数组元素,如果pid不是0,则为真。

答案 1 :(得分:1)

您正在使用赋值运算符=而不是比较运算符==

if(data[i][0] = pid) {
             ^^^

至于我,我会按照以下方式编写这些循环

for ( size_t i = 0; i < data.size(); i++ )  
{
    if ( data[i][0] == pid && data[i].size() > 5 ) 
    {
        cout << data[i][5] << endl;
    }
}