![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| fire64 |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 97 Регистрация: 18.7.2007 Репутация: нет Всего: нет |
Я для парсинга написал следующий код
если я использую GetStringValue только один раз, то все нормально а если 2 раза, то содержимое строк неправильное
Hubname содержит не правильное значение, а точнее часть содержимого Topicname прошу помочь разобраться в проблеме Это сообщение отредактировал(а) fire64 - 6.10.2009, 14:53 |
||||
|
|||||
| niXman |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 211 Регистрация: 4.7.2009 Репутация: 0 Всего: 0 |
Это сообщение отредактировал(а) niXman - 6.10.2009, 15:04 --------------------
if ( !c++ ) { *power--; this->wussiness += 10;} |
|||
|
||||
| xvr |
|
||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 60 Всего: 223 |
Конкатенация строки с неинициализированным мусором. Используй просто strncpy
|
||||||
|
|||||||
| fire64 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 97 Регистрация: 18.7.2007 Репутация: нет Всего: нет |
xvr, а что это изменит ?
всеравно первая строка будет содержать содержимое второй Это сообщение отредактировал(а) fire64 - 6.10.2009, 16:59 |
|||
|
||||
| niXman |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 211 Регистрация: 4.7.2009 Репутация: 0 Всего: 0 |
передай в функцию еще один параметр, т.е. указатель на буфер куда будет помещаться результат.
--------------------
if ( !c++ ) { *power--; this->wussiness += 10;} |
|||
|
||||
| fire64 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 97 Регистрация: 18.7.2007 Репутация: нет Всего: нет |
Проблема решена
xvr, спасибо за помощь в избавлении от мусора niXman спасибо за совет с указателем на буфер п.с. помог перевод char* в char [] кстати буду рад если кто объяснит почему char* некорректно работал |
|||
|
||||
| niXman |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 211 Регистрация: 4.7.2009 Репутация: 0 Всего: 0 |
Потому что ты возвращал указатель на локальный массив. А запись типа char[] предполагает возвращать копию массива. п.с. но я бы так не сделал. лучше передать указатель на массив в функцию. --------------------
if ( !c++ ) { *power--; this->wussiness += 10;} |
|||
|
||||
| fire64 |
|
||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 97 Регистрация: 18.7.2007 Репутация: нет Всего: нет |
ок спасибо за информацию
возникла новая проблема программа падает в дебаг билде в функции парсинга (смотрите первый пост) при использовании sprintf
|
||||||
|
|||||||
| Леопольд |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 943 Регистрация: 17.6.2009 Репутация: 10 Всего: 13 |
std::string get_text(const std::string& str, const std::string& beg, const std::string& end) { std::string::const_iterator open = std::search(str.begin(), str.end(), beg.begin(), beg.end()); std::string::const_iterator close= std::search(open, str.end(), end.begin(), end.end()); Немного оптимизации не повредит. Но это не распарсишь... :) "gkjeihgei<tag>not needed text</tag><tag>needle text</tag>kjbsbv" Это сообщение отредактировал(а) Леопольд - 6.10.2009, 20:02 -------------------- вопросов больше чем ответов |
|||
|
||||
| niXman |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 211 Регистрация: 4.7.2009 Репутация: 0 Всего: 0 |
А в релизе? Кто такой result ? Добавлено через 10 минут и 35 секунд Леопольд, Тоже верно --------------------
if ( !c++ ) { *power--; this->wussiness += 10;} |
|||
|
||||
| fire64 |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 97 Регистрация: 18.7.2007 Репутация: нет Всего: нет |
niXman, вот код
в релизе падает тоже, но в другом месте
|
||||
|
|||||
| niXman |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 211 Регистрация: 4.7.2009 Репутация: 0 Всего: 0 |
Возможно, объем буфера мал. Или "probel" равен NULL
--------------------
if ( !c++ ) { *power--; this->wussiness += 10;} |
|||
|
||||
| xvr |
|
||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 60 Всего: 223 |
Вот тут
Кстати, конструкция
|
||||||
|
|||||||
| niXman |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 211 Регистрация: 4.7.2009 Репутация: 0 Всего: 0 |
Я вообще не понимаю, почему бы не воспользоваться моим примером кода.
--------------------
if ( !c++ ) { *power--; this->wussiness += 10;} |
|||
|
||||
| zim22 |
|
|||
|
depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 24 Всего: 69 |
||||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |