问题描述:
今天在学习OpenGL,在VS调试代码时,碰到open()文件失败的问题。
Shader *testShader = new Shader("vertexSource.txt");
这里Shader的构造函数会去打开vertexSource.txt文件。
Shader::Shader(const char* vertexPath, const char* fragmentPath)
{
std::ifstream vertexFile;
vertexFile.open(vertexPath);
try
{
if (!vertexFile.is_open())
{
throw std::exception("open file error!");
}
vertexSStream << vertexFile.rdbuf();
}
catch (const std::exception& ex)
{
printf(ex.what());
}
}
项目的文件目录结构如图:
txt文件和cpp一起放在了src下。
这个时候如果点击调试,会抛出异常,open file error!
解决办法:
将需要打开的文件放在项目文件夹下,如图所示:
此时即可打开。若要运行目标程序,则需把txt文件放到exe所在的文件夹中。