2013-05-08 55 views
0

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

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())”语句

我非常肯定这条道路是正确的,但如果不是如何确保我在正确的道路上(即:是否有方法来检查我在哪里阅读从)..如果路径是正确的,为什么我的文件没有打开?

+1

你可以通过打印QDir :: currentPath() – Antwane 2013-05-08 11:02:32

+0

@AntoineLorence:thanks ..的结果来检查你正在阅读的内容。 – 2013-05-08 11:04:57

回答

2
static_cast<QString>(length) 

应该是:

QString::number(length) 

您可以只打印出来到控制台检查:

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