当我if判断file.open打开文件 中间 判断  里面都会不会执行

  if(file.open(QIODevice::ReadOnly | QIODevice::Text))
        {
             while (!stream.atEnd())
            {

             strline=stream.readLine(); 
                                     //保存到strline数据调用Qstring里面的split
             StrList=strline.split(","); //可以已某一种或多种符号进行分割保存到链表中
                                                   //当已经拿到分割的数据 字符串进行比较
             if(StrAccInput==StrList.at(0)){
                                                   //进行账号比较 QText可以进行==等于比较
               if(strCide==StrList.at(1)){//密码进行匹配
                   QMessageBox::information(this,"提示","..欢迎登陆..");
                 //  ui->lineEdit_2->clear();         //清空下密码
                   file.close();
                   return;//关闭文件
              }else{

                  QMessageBox::information(this,"提示","您输入的密码错误,请重新输入");
                  ui->lineEdit_2->clear();          //清空下密码
                  ui->lineEdit_2->setFocus();       //进行聚焦
                  file.close();
                  return;
              }


             }else{
                 QMessageBox::information(this,"提示","您输入的账号误");
                 ui->lineEdit->clear();       //清除账号信息
                 ui->lineEdit_2->clear();
                 ui->lineEdit->setFocus();    //聚效
                 file.close();
                 return;

             }

           }

        }else{

            QMessageBox::information(this,"提示","读取账号密码失败");
            return;
        }

    }

当我if判断file.open打开文件 中间 判断  用户输入的 账号和文件进行比较 出现警告 里面都会不会执行  不管你花里胡哨的还是 账号不对 或者账号对了 密码错误 都是会 到读取账号密码失败的那一步  里面的代码这不会执行怎么回事

推荐try,catch下,因为我用的是c#,可能有些地方有些偏差

可能如下,1:文件不存在

2:文件有用户权限,

3:文件不支持读取

因为是

if(file.open(QIODevice::ReadOnly | QIODevice::Text))

这句话失败导致触发else语句