QFile不读取也不打开我的文件

时间:2013-05-08 10:38:49

标签: c++ qt qfile

我有一个名为“sequence_30.dat”的文件,其中包含垂直表示中的1和-1序列(即:每个1或-1在一个单独的行中)..我正在尝试读取该文件使用以下代码的另一个操作:

int length = 31
QFile file("sequence_"+ (static_cast<QString>(length)) +".dat");
if(file.exists()){
  file.open(QIODevice::ReadOnly);
  if(file.isOpen()){
    ....
    ....
  }
  file.close();
}

但是在调试时,编译器会跳过“if(file.exists())”语句,当它被删除时,编译器会再次跳过“if(file.isOpen())”语句

我非常确定路径是正确的,但如果不是如何确保我在正确的路径(即:是否有办法检查我从哪里读取)..如果路径是纠正为什么我的文件没有打开?

2 个答案:

答案 0 :(得分:2)

static_cast<QString>(length)

应该是:

QString::number( length )

您只需将其打印到控制台即可查看:

cout << qPrintable( QString( "sequence_" ) +
        QString::number( length ) + ".dat" ) << endl;

答案 1 :(得分:1)

static_cast不起作用,因此您应该使用QString::number int 转换为 QString ,而不是static_cast。