std::fstream在Windows C++上读取文件
std::fstream read file on Windows C++
我正在尝试将一些在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();
}
有关于解决此问题的提示吗?
非常感谢。
您正在返回一个本地分配的字符串缓冲区,当函数退出时,该缓冲区将丢失。静态地在内部分配缓冲区,或者(更好)返回字符串。
相关文章:
- 使用新行和不使用新行读取文件
- 读取文件并输入到矢量中
- 读取文件的最后一行并输入到链接列表时出错
- 为什么在读取文件大小时文件IO速度会发生变化
- 读取文件时运行时的未知行为
- 如何逐行读取文件,每行中的内容都用空格分隔并将其写入新文件中
- 读取文件中所有可能的十六进制 16 字节序列并打印每个序列
- C++ 读取文件读取文件不正确
- 读取文件并将其存储在unordered_map中时出现问题
- 读取文件时无法使用 OpenMP 获得加速
- 使用istringstearm和get行缓慢读取文件
- 如何继续读取不同功能中的文件,而不是从头开始再次读取文件?
- 读取文件时引发异常
- 从标准输入读取文件后读取用户输入
- 在读取文件后重置句柄
- 如何在C++编译时读取文件?
- std::ifstream 在读取文件中最后一项时设置 eofbit,但仅在读取数值类型时发生
- 读取文件在第二次调用时返回INVALID_HANDLE
- 通过指针读取文件
- 逐行读取文件,并将数据插入变量和数组中