使用VS2013的奇怪(c ++)调试问题

时间:2015-11-30 21:05:25

标签: c++

我继承了一个项目,并且在linux上开发了初始构建。我不知道这是否重要,但我想我会分享它。

为了在Windows机器上调试项目,我首先使用win7上的CMakeGUI创建一个Visual Studio Solutions文件,使用Visual Studio 2013打开项目,然后设置启动项目并构建我感兴趣的项目。到目前为止一切都还好。现在是令人困惑的部分。

在加载时,程序假定读取一个文件,让我们调用它in.dat并在const char * inputFileName中声明,然后该变量通过一个类,该类尝试打开文件以获取数据。

fstream fs;
fs.open(inputFileName.c_str(), fstream::in);
    if(!fs.is_open())
    {
        std::cout << "Cannot open input file!" << std::endl;
        exit(0);
    }

这是我难倒的...当我尝试调试应用程序时,由于某种原因放置在调试文件夹中的文件无法打开即fs.is_open() returns false但是如果我直接进入项目的调试文件夹,在VS之外,运行它按预期运行的可执行文件,即fs.is_open() now returns true

1 个答案:

答案 0 :(得分:0)

您的调试器工作目录默认为项目的根目录,二进制文件位于\ debug子目录中,实际上导致输入文件的路径错误。

将调试器的工作目录设置为\ debug。 这里有更多信息: https://msdn.microsoft.com/en-us/library/kcw4dzyf(v=vs.120).aspx