C++ QFile是';t形开口

C++ QFile是';t形开口,c++,qt,C++,Qt,我编写了以下代码,用于从文件中检索数据(该文件已经存在,并且由于我在Windows操作系统上,因此也提供了权限),并创建了一些项以在列表中显示数据片段,但列表不会显示任何内容。更详细地说,我发现即使没有创建文件,file.EXISTS()函数也返回true。为什么会这样 void MainWindow::on_listWidget_itemClicked(QListWidgetItem *item) { ui->listWidget_2->clear();

我编写了以下代码,用于从文件中检索数据(该文件已经存在,并且由于我在Windows操作系统上,因此也提供了权限),并创建了一些项以在列表中显示数据片段,但列表不会显示任何内容。更详细地说,我发现即使没有创建文件,file.EXISTS()函数也返回true。为什么会这样

 void MainWindow::on_listWidget_itemClicked(QListWidgetItem *item)  
 {
     ui->listWidget_2->clear();
     QListWidgetItem *itm=new QListWidgetItem;
     ui->commentbutton->setEnabled(true);

     QFile files("E:/"+QString::number(ui->listWidget->currentRow())+"com.txt");

     if(files.exists())
     {
         if(!files.open(QFile::ReadOnly | QFile::Text))
         {
              QMessageBox::warning(this,"File Access!!!","The File containing data of      the Items and Comments can't be acessed",QMessageBox::Ok);
              return;
         }
         QTextStream in(&files);
         QString data(in.readLine());
         int x=0;

         QString temp;

         for(int i=0;;i++)
          {
             if(data.at(i)!='@' && data.at(i+1)!='#')
             {
                 temp[x]=data.at(i);
                 x++;
             }
             else
                 if(data.at(i)=='@' && data.at(i+1)=='#')
                 {
                     x=0;
                     i++;
                     itm->setText(temp);
                     ui->listWidget_2->addItem(itm);
                 }
             if(data.end())
                 break;
         }
         files.close();
     }
生成文件的路径将显示:

这是存储在0com.txt文件(注释文件)中的数据: 纽约,伦敦,@# 谢谢你的时间

1)0com.txt实际存在。对于
ui->listWidget
中的当前行号,您是否有一个“false”
files.exists()

2) end()返回一个STL样式的迭代器,同时按索引递增。使用

if(i>= data.size())
    break;

3) 请显示“0com.txt”的内容以进行进一步调试

没有意义。您是如何确保代码中生成的路径实际上是您认为的路径的?你能更新你的代码来显示生成的路径吗?这是一个固定的路径。我不会为文件存储更改此路径。更改的唯一内容与列表中的项目编号有关,因此当前选定项目的注释将显示在另一个列表中。当打开()失败时,files.error()返回什么?我说的是
QFile文件(…)
行。括号中的内容是生成的路径。请展示一下。我已经展示了所需的东西!当我这样做时,如果(i>data.size())中断;显示注释时程序崩溃。no files.exists()永远不会变为false,即使文件不存在。我不知道原因。非常感谢你的建议奏效了,但是现在当程序加载评论时程序崩溃了。我已经做了空字符的事情,但是仍然发生了。对于你的文件,请添加一个“qDebug()