【问题标题】:QFile is not reading nor opening my fileQFile 不读取也不打开我的文件
【发布时间】:2013-05-08 10:38:49
【问题描述】:

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

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

【问题讨论】:

  • 您可以通过打印 QDir::currentPath() 的结果来检查您正在阅读的位置
  • @AntoineLorence:谢谢..

标签: c++ qt qfile


【解决方案1】:
static_cast<QString>(length)

应该是:

QString::number( length )

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-22
      • 2013-03-15
      • 1970-01-01
      • 2011-03-29
      • 2014-10-24
      • 2021-05-05
      • 2023-03-12
      • 1970-01-01
      相关资源
      最近更新 更多