Форум программистов, компьютерный форум, киберфорум
Boost C++
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
Нарушитель
54 / 55 / 8
Регистрация: 01.07.2014
Сообщений: 1,021
1

Почему возращается пустая строка при чтении ini-файла?

24.01.2016, 22:29. Показов 1236. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет. Непойму почему мне возращается пустая строка.К примеру есть переменная:
C++
1
const char *mystr;
Бустом я читаю INI:
C++
1
2
3
    boost::property_tree::ptree pt;
    boost::property_tree::ini_parser::read_ini("test.ini", pt);
    mystr = pt.get<std::string>("myblock.testkey").c_str();
и возвращается пустая строка.Если попробовать вывести messagebox с значением testkey то все работает:
C++
1
2
3
    boost::property_tree::ptree pt;
    boost::property_tree::ini_parser::read_ini("test.ini", pt);
    MessageBox(0, pt.get<std::string>("myblock.testkey").c_str(), "Test", MB_OK);
Добавлено через 12 минут
И вообще в любых функциях которые работают с const char * все работает а присваивапние к переменной нет

Добавлено через 1 минуту
Нет модеры. Сам INI читается правильно и возвращает не ноль. Он возвращает ноль в переменную
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.01.2016, 22:29
Ответы с готовыми решениями:

Почему пропускается строка при чтении XML файла?
Доброго времени суток дамы и господа. Столкнулся с такой проблемой. Есть XML файл, я его разбираю и...

Ошибка при чтении ini файла
Пишу игру, при достижении очков больших, чем рекорд - в ини файле меняем значение record на очки....

Проблемы с кириллицей при чтении из ini-файла
есть класс для работы с INI-фйлом public class cIni{ private static extern int...

Пустая строка в Ini
Прошу не удаляйте тему!Я знаю, что наверное я не один с таким вопросом, но все же будьте так добры....

4
Неэпический
18100 / 10686 / 2061
Регистрация: 27.09.2012
Сообщений: 26,899
Записей в блоге: 1
24.01.2016, 23:07 2
C++
1
mystr = pt.get<std::string>("myblock.testkey").c_str();
mystr же указатель.
А вот временный объект std::string будет уничтожен
и куда потом этот указатель будет смотреть?
Правильно! Туда, где раньше была строка, а теперь там черть знает что.
Так попробуйте:
C++
1
2
3
4
    std::string mystr;
    boost::property_tree::ptree pt;
    boost::property_tree::ini_parser::read_ini("test.ini", pt);
    mystr = pt.get<std::string>("myblock.testkey").c_str();
1
В астрале
Эксперт С++
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
25.01.2016, 10:37 3
Croessmah, c_str совершенно лишний. Добавляет ненужное приведение типов.
2
Неэпический
18100 / 10686 / 2061
Регистрация: 27.09.2012
Сообщений: 26,899
Записей в блоге: 1
25.01.2016, 12:07 4
ForEveR, точно. Скопипастил как у ТС было
1
Нарушитель
54 / 55 / 8
Регистрация: 01.07.2014
Сообщений: 1,021
25.01.2016, 16:09  [ТС] 5
Спасибо но я пробовал и так но все равно возращало ноль
0
25.01.2016, 16:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.01.2016, 16:09
Помогаю со студенческими работами здесь

Крякозябры вместо русских буква при чтении из INI файла
При чтении каких-то значений на русском языке из INI файла вместо русских букв появляются...

При чтении каких-то значений на русском языке из INI файла вместо русских букв появляются крякозябры, когда с
При чтении каких-то значений на русском языке из INI файла вместо русских букв появляются...

При чтении из файла пропускается вторая строка
Что не делаю, при чтении постоянно пропускает вторую строчку из файла. #include&lt;iostream&gt;...

При вводе из файла проверить, следующая строка пустая или нет
Можно ли как-нибудь проверить является ли следующая строка при вводе, например, текста из файла...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru