Страницы

Поиск по вопросам

среда, 22 мая 2019 г.

.c_str() возвращает какой-то бред

День добрый! На C++ считываю данные из файла. В конце имею string, которую мне надо представить в виде const char*, для чего использую .c_str(). Но возвращает он какой-то бред (не только с кириллицей проблемы, а вообще с любым текстом). Файл сохранены в кодировке ANSI. Как можно решить проблему? Код чтения:
ifstream ifs(path); if (ifs.is_open()) { string s; s.assign((istreambuf_iterator(ifs.rdbuf())), istreambuf_iterator()); cout << s; ifs.close(); return s.c_str(); } else return "";


Ответ

Ну, начнем с того, что вы возвращаете указатель локального объекта, который после вашего return уничтожается, и указатель указывает... куда?
Дальше не пояснять?

Комментариев нет:

Отправить комментарий