Форум программистов, компьютерный форум 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
04.01.2013, 11:45  [ТС]     Парсинг и валидация записи числа
А так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
double ParseDouble(const
                   std::string     &Buffer,
                   TParseXSMResult &ResultCode)
{
 double        Result;
 double        d;
 size_t        re;
 size_t        de;
 size_t        i;
 size_t        L;
 size_t        p;
 size_t        e;
 unsigned char c;
 ResultCode=TPXSMRNoError;
 Result=0.0;
 L=Buffer.length();
 for (i=0; i<=L; ++i)
 {
  c=Buffer[i];
  if (c=='.')
  {
   p=i;
   break;
  }
 }
 for (i=p+1; i<=L; ++i)
 {
  c=Buffer[i];
  if (c=='E')
  {
   e=i;
   break;
  }
 }
 Result=0.0;
 for (d=0.1, i=p+1; i<e; ++i, d/=10.0)
 {
  c=Buffer[i];
  switch (c)
  {
   case '0':
   break;
   case '1': Result+=d;
   break;
   case '2': Result+=2.0*d;
   break;
   case '3': Result+=3.0*d;
   break;
   case '4': Result+=4.0*d;
   break;
   case '5': Result+=5.0*d;
   break;
   case '6': Result+=6.0*d;
   break;
   case '7': Result+=7.0*d;
   break;
   case '8': Result+=8.0*d;
   break;
   case '9': Result+=9.0*d;
   break;
   default : ResultCode|=TPXSMRParseError;
   return Result;
  }
 }
 for (d=1.0, i=p-1; i>0; ++i, d*=10.0)
 {
  c=Buffer[i];
  switch (c)
  {
   case '0':
   break;
   case '1': Result+=d;
   break;
   case '2': Result+=2.0*d;
   break;
   case '3': Result+=3.0*d;
   break;
   case '4': Result+=4.0*d;
   break;
   case '5': Result+=5.0*d;
   break;
   case '6': Result+=6.0*d;
   break;
   case '7': Result+=7.0*d;
   break;
   case '8': Result+=8.0*d;
   break;
   case '9': Result+=9.0*d;
   break;
   default : ResultCode|=TPXSMRParseError;
   return Result;
  }
 }
 c=Buffer[i];
 if (c=='-')
 {
  Result=-Result;
 }
 er=1;
 for (de=1, i=L-1; i>e; --i)
 {
    c=Buffer[i];
  switch (c)
  {
   case '0':
   break;
   case '1': re+=d;
   break;
   case '2': re+=2*de;
   break;
   case '3': re+=3*de;
   break;
   case '4': re+=4*de;
   break;
   case '5': re+=5*de;
   break;
   case '6': re+=6*de;
   break;
   case '7': re+=7*de;
   break;
   case '8': re+=8*de;
   break;
   case '9': re+=9*de;
   break;
   default : ResultCode|=TPXSMRParseError;
   return Result;
  }
 }
 c=Buffer[e+1];
 if (c=='-')
 {
  for (; re>0; --re)
  {
   Result/=10.0;
  }
 }
 else
 {
  for (; re>0; --re)
  {
   Result*=10.0;
  }
 }
 return Result;
}
?
 
Текущее время: 12:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru