ifstream无法在qtcreator中打开文件

Ifstream fail to open a file in qtcreator

本文关键字:文件 qtcreator ifstream      更新时间:2023-10-16

请查看以下程序和输出。

main.cpp

  #include<iostream>
  #include "mesh.h"
  using namespace std;
  int main()
  {
      mesh trail;
      trail.openfile("input.in");
  }

OpenFile 函数:

void mesh::openfile(std::string szFile)
{
    m_File.open(szFile);
    if(!m_File) std::cout<< "couldn't open "<<szFile;
}

m_file是网格类的私有ifstream对象。

我检查了输入文件名,并在调用函数中使用字符串参数进行了验证,并检查了" input.in"文件的权限。我在那里找不到错误。那为什么QT创建者会给我以下输出:

couldn't open input.in

我的.pro文件是:

 TEMPLATE = app
 CONFIG += console c++11
 CONFIG -= app_bundle
 CONFIG -= qt
 SOURCES += main.cpp
    node.cpp 
    element.cpp 
    mesh.cpp

 HEADERS += 
    node.h 
    element.h 
    mesh.h
 DISTFILES += 
    input.in 
trail.openfile("input.in");

此试图找到相对于应用程序过程的"当前工作目录"的文件。默认情况下,QT Creator将应用程序过程的工作目录设置为创建应用程序的目录(或在Windows上它可以是上面的一个级别)。

在项目模式中查看工作目录>您项目的运行设置,并确保将其指向输入文件所在的位置。另请参阅QT创建文档