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

231
22 мая 2017, 00:06

День добрый! На C++ считываю данные из файла. В конце имею string, которую мне надо представить в виде const char*, для чего использую .c_str(). Но возвращает он какой-то бред (не только с кириллицей проблемы, а вообще с любым текстом). Файл сохранены в кодировке ANSI. Как можно решить проблему? Код чтения:

ifstream ifs(path);
if (ifs.is_open())
{
    string s;
    s.assign((istreambuf_iterator<char>(ifs.rdbuf())), istreambuf_iterator<char>());
    cout << s;
    ifs.close();
    return s.c_str();
}
else
    return "";
Answer 1

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

Дальше не пояснять?

READ ALSO
Кольцевой список, используя контейнер list

Кольцевой список, используя контейнер list

Проблема вот в чём, мне необходимо создать двусвязный кольцевой список используя контейнер listДвусвязный он по умолчанию, а вот кольцевая...

250
Не работает конструкция

Не работает конструкция

Здравствуйте! В первый раз столкнулся с такой конструкцией, как она называется и почему не работает:

275
Как создать текст с контуром на изображении RGB в буфере?

Как создать текст с контуром на изображении RGB в буфере?

Есть буфер с байтами RGB (раcжатый jpeg кадра с веб-камеры, без альфы, естественно)Нужно заменить часть этих байт (правый верхний угол) байтами...

366