0

我有一个名为“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())”语句

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

4

2 回答 2

2
static_cast<QString>(length)

应该:

QString::number( length )

您可以通过将其打印到控制台来检查它:

cout << qPrintable( QString( "sequence_" ) +
        QString::number( length ) + ".dat" ) << endl;
于 2013-05-08T10:43:31.690 回答
1

static_cast不是这样工作的,因此您应该使用QString::numberint转换为QString而不是 static_cast 。

于 2013-05-08T10:44:08.093 回答