std :: fstream читает файл в Windows C ++ - PullRequest
1 голос
/ 20 марта 2012

Я пытаюсь перенести код, работающий в 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();
}

Любые советы по устранению неполадок?

Заранее большое спасибо.

1 Ответ

4 голосов
/ 20 марта 2012

Вы возвращаете локально размещенный строковый буфер, который теряется при выходе из функции. Выделите буфер статически внутри или (лучше) верните вместо него строку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...