Форум программистов, компьютерный форум CyberForum.ru

Парсинг и валидация записи числа - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Определить число вхождений в строку подстроки "аба", вывести символы строки, не являющейся буквами или цифрами http://www.cyberforum.ru/cpp-beginners/thread752366.html
решить нужно в течении часа определить число вхождений в строку подстроки "аба" вывести символы строки не являющейся буквами или цифрами
C++ Для енама нельзя перегружать операторы? Для енама нельзя перегружать операторы? http://www.cyberforum.ru/cpp-beginners/thread752361.html
Ошибка компилятора C2360 C++
Здравствуйте,форумчане) Я тут переделываю загрузчик модели,чтобы мог не один начальный меш загрузить,а все,которые есть на сцене.В итоге пользуюсь контейнером vertex. Значит,если кто не знает,в формате .3ds всё разбито оп блоком(бинарное всё)Эти блоки я определяю switch'ем. Вот кусок кода: case 0x4100: Mesh mesh; unsigned short numVerts, numTris,nTexCoord; break; case...
C++ Итерация
Что такое итерационные вычисления? В чём их суть? В чём отличие методов:по определению с предусловием и с элементом с предусловием?
C++ Detours express 3.0 Компиляция http://www.cyberforum.ru/cpp-beginners/thread752318.html
Вообщем проблема с созданием готовых библиотек Скачать с офф сайта http://research.microsoft.com/en-us/projects/detours/ Не могу сделать готовые файлы для своего проекта... Прошу помощи Добавлено через 23 часа 40 минут Подниму.
C++ Пытаюсь переписать код с циклом for, в код с циклом while, но не совсем получается Возникло пару вопросов: #include <iostream> using namespace std; int main () { for (int i = 0; i<=10; i++) cout << i << '\n'; return 0; } 1. Этот код выводит числа от 0 до 10. А как сделать в обратку? Т.е. от 10 до 0. подробнее

Показать сообщение отдельно
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
05.01.2013, 13:43  [ТС]     Парсинг и валидация записи числа
Цитата Сообщение от iifat Посмотреть сообщение
Например, как я набросал чуть выше -- эта не вылетает.
А как именно реагирует?

Добавлено через 7 минут
Цитата Сообщение от iifat Посмотреть сообщение
const char *const Buffer,
А мне надо str::string.
Цитата Сообщение от iifat Посмотреть сообщение
if (*p=='.') {char *p0 = ++p; int after_p = sliceInt (p); Result += after_p * 0.1 ^ (p-p0);}
* if (*p=='E') {++p; int exp_p = sliceInt (p); Result *= 10 ^ exp_p;}
* if (*p) {error} // неведомые символы в конце строки
А где цикл?

Добавлено через 14 минут
Цитата Сообщение от iifat Посмотреть сообщение
Result = sliceInt (p);
И как это решит проблему? Если уж нельзя выдать сообщение, то пусть лучше вылетает. Гарантия того, что функция не проглотит нечто, не соответствующее фрагменту спецификации формата, относящемуся к именно её части файла, обязательна, код ошибки желателен, причём, без подробностей, просто TPXSMRParseError. В особо запущенных случаях пусть падает, лишь бы только не пропустить что нибудь "левое".

Добавлено через 16 минут
Проблема в том, что целые и действительные в разных системах счисления: целые шестандцатеричные, но без ведущих символов 0x, а действительные десятичные. И если вдруг должно быть действительное, а ни точки, ни E в нём не окажется, то вообще не понятно, "200" - это сколько: 200, или 512 и сколько в этой записи числа вообще ошибок.

Добавлено через 3 минуты
Цитата Сообщение от iifat Посмотреть сообщение
Да, кстати, тебе ж тут советовали грамматики и регулярные выражения. В принципе, конечно, правильно, только это полгода разбираться будешь. Если в перспективе кие-нибудь сложные парсеры -- имеет смысл, а для конкретной задачи -- имхо, нет.
Это и есть часть более сложного парсера.
 
Текущее время: 06:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru