0

我的应用程序返回 0x3 并崩溃。我发现可能 fstream 无法打开文件。它应该在哪里?我的意思是,与 application.exe 或其他地方相同的文件夹?我正在使用代码::块

编辑

Code::Blocks 正在使用 cb runner 设置工作目录

GLuint sh;
int meret;
char * s;
std::ifstream fa1 ("vertex.vert",std::ios_base::binary);

fa1.seekg(0, fa1.end);
meret = fa1.tellg();
fa1.seekg(0, fa1.beg);
fa1.read(s,meret);
fa1.close();
//sh = glCreateShader(st);
const char * s1[1] = {s};
std::cout << s;
4

1 回答 1

0

我认为你的问题是这一行:

fa1.read(s,meret);

由于您没有为 array 分配任何空间,因此s尝试写入它会很糟糕。

s = new char[ meret ];

就在read可能解决您的问题之前,只要文件不是太大... 注意:您不需要手动关闭ifstream对象 - 它会在超出范围时关闭。

于 2013-08-14T12:26:01.923 回答