std::fstream在Windows C++上读取文件

std::fstream read file on Windows C++

本文关键字:读取 文件 C++ Windows fstream std      更新时间:2023-10-16

我正在尝试将一些在Linux上运行良好的代码移植到Win32。我已经检查了当前的工作目录和与文件在同一目录中工作的程序。然而,由于某种原因,它无法读取它。这是进行读取的函数。我只是把"filename.txt"传给它:

inline const GLchar* readTextFile(const char* filename) {
std::fstream shaderFile(filename,std::ios::in);
std::string shader;
std::stringstream buffer;
buffer << shaderFile.rdbuf();
shader = buffer.str();
return shader.c_str();
}

有关于解决此问题的提示吗?

非常感谢。

您正在返回一个本地分配的字符串缓冲区,当函数退出时,该缓冲区将丢失。静态地在内部分配缓冲区,或者(更好)返回字符串。