无法读取文件

时间:2018-12-06 08:09:30

标签: c++ file fstream

在跟随vulkan-tutorial时,我遇到了一个问题。我根本无法使用他使用的方法打开文件。

我有一个名为shader.frag.spv的文件,该文件是片段着色器,已编译为spir-v代码。它位于我的readFile所在的源文件夹中。

以下是重现我的问题的代码:

#include <iostream>
#include <fstream>

void readFile(const std::string& filename) {
    std::ifstream file(filename, std::ios::ate | std::ios::binary);

    if (file.is_open())
        std::cout << "test";
    else
    {
        std::cin.get(); // I always land on the else block
    }
}

int main()
{
    readFile("shader.frag.spv");
}

重新启动Visual Studio,更改文件名,更改其内容,使用绝对路径将其移动到单独的文件夹。这些都没有解决我的问题。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

鉴于文件已经在您当前的工作目录中,因此代码应该可以正常工作!

Visual Studio中的默认当前目录是项目根目录,而不是可执行文件所在的目录,如@someProgrammerDude所述。

如果不确定,请检查C++ Visual Studio Current Working Directory