Форум программистов, компьютерный форум 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. подробнее

Показать сообщение отдельно
iifat
2179 / 1332 / 96
Регистрация: 05.06.2011
Сообщений: 3,690
04.01.2013, 13:34     Парсинг и валидация записи числа
Цитата Сообщение от taras atavin Посмотреть сообщение
for (i=0; i<=L; ++i)
Цитата Сообщение от taras atavin Посмотреть сообщение
for (i=p+1; i<=L; ++i)
Мнэээ... Ну, ты наворотил... Во-первых, навскидку, <L в обоих местах. Во-вторых, как точка, так и Е (в смысле, порядок) могут отсутствовать.
Я б таки предложил внутреннюю функу, парсящую максимальное целое число, выдающую его и количество цифр. Вызываем её для строки, проверяем, если дальше точка, вызываем ещё раз для куска строки после точки.
Примерно так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
int sliceInt (char *& Pointer) {
  int res = 0;
  while (*Pointer) {
    if (*Pointer >= '0' && *Pointer <= '9') {
      res += *Pointer - '0';
      ++Pointer
    } {
      break;
    }
  }
  return res;
}
 
double ParseDouble(const char *const Buffer,
                   TParseXSMResult &ResultCode)
{ double        Result;
  char *p = Buffer;
  Result = sliceInt (p);
  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} // неведомые символы в конце строки
}
Очень приблизительно. И со std::ctring я не помню в точности как работать, так что это -- идея, не прога.
 
Текущее время: 11:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru