Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Для новичков > Конец строки, что-то не идет... |
Автор: Killer_13 11.10.2010, 19:00 | ||||
Здравствуйте. Есть у меня огромная строка из нее нужно выбрать определенные слова, с этим вроде все в порядке. ![]() Но у меня идет циклом, так что выводится столько раз, сколько символов в строке около 2000 строк. Тоисть та информация что я выдираю из строки повторяется много раз. Нужно определить, что найден последний элемент в строке и прекратить писать в файл. например pos2=2005 , а длина строки 2015, и pos2 который на 2005 позиции последний искомый элемент, если это так, то нужно прекратить поиск в строке Нашел похожую тему, но че-т с getline не получилось: http://forum.vingrad.ru/topic-211976.html вот функция:
Спасибо. |
Автор: bsa 11.10.2010, 19:17 |
используй break.... Больше ничего посоветовать не могу, так как текст слишком сумбурен и непонятен. |
Автор: Killer_13 11.10.2010, 19:20 | ||
Вот такая вот строка.
Модератор: сделал сообщение более читабельным |
Автор: bsa 11.10.2010, 19:45 |
Killer_13, я очень рад за тебя. А дальше что? Ну строка. Хорошо. очень похоже на XML. Ты по-русски расскажи, что ты хочешь получить. |
Автор: Killer_13 11.10.2010, 21:37 |
Да, был xml, теперь забил все в одну строку и нужно достать инфу из тэгов. Wuebbelmann Juergen и так д... ![]() мой код получает такое только повторяет все 2000 с чем то раз, а мне не нужно повторения, поэтому хочу узнать как смотреть конц строки. |
Автор: djamshud 12.10.2010, 10:25 | ||
У вас цикл бестолковый. Делайте
Добавлено @ 10:27 Вместо -1 более кошерно использовать std::string::npos. |
Автор: xvr 12.10.2010, 11:23 |
Чем не устраивают готовые НОРМАЛЬНЫЕ xml парсеры (имя коим легион)? |
Автор: Killer_13 12.10.2010, 12:40 |
Дык ненаю я нормальных парсеров, просто задачку нуно написать. djamshud Пасиб, попробую сегодня. |
Автор: djamshud 12.10.2010, 13:10 |
Killer_13, http://xmlsoft.org/ |
Автор: W4FhLF 12.10.2010, 13:19 |
Я бы посоветовал: http://code.google.com/p/pugixml/ |
Автор: Killer_13 12.10.2010, 22:11 | ||
Хммм, опять чо-то странное.. Чуток переделал функцию. Вот так
Но здесь происходит зацыкливание! Не понямаю почему!!! Протестировал дебаггером раза три, так вот доходит строка до конца. pos2=-1 а потом цыкл проверяет и пускает это значение дальше. Не могу понять?? Не должен же! вместо string::npos пробовал ставить -1 результат такой же. Уважаемые, мне не нужно серьезно вникать в с++ пока, мне нужно написать 1 задачу. Спасибо. |
Автор: Crafty 12.10.2010, 22:39 |
В условии цикла || на && замените. |
Автор: Killer_13 12.10.2010, 22:49 |
Йомайо, так и хотел попробовать, но почему то руки не дотянулись, в голове произошла мысль, что должно работать и с "или" почему же не работало с или, можете обьяснить в двух словах. Должно было работать, тоисть условие срабатывало, если хотя бы одно из значений "-1" = почему не срабатывало? Спасибо! |
Автор: Killer_13 12.10.2010, 23:13 |
Вах, откуда на таком хорошем форуме спам полез, и не стыдно господам спамерам... :( |
Автор: djamshud 12.10.2010, 23:34 |
Killer_13, это я дурак. Сначала поставил &&, потом подумал и исправил на ||, решив, что лучше проверить сразу обе позиции на -1. && говорит, что достаточно найти один конец: true && false = false. |
Автор: Killer_13 12.10.2010, 23:57 |
Пасиб, с преподом искали ошибку не нашли. ![]() ![]() |