Страницы

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

суббота, 7 марта 2020 г.

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

#cpp #кодировка #visual_cpp #char


День добрый! На 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 "";

    


Ответы

Ответ 1



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

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

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