- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
#include <stdio.h>
#include <iostream>
#include <regex>
using namespace std;
int cube(int);
int main()
{
char number;
label:
cout << " Введите число " << endl;
cin >> number;
regex txt_regex("/^\d+$/");
if (!regex_match(number, txt_regex))
{
cout << "Вводить можно только цифры!" << endl;
goto label;
}
int value = atoi(number);
int result = cube(value);
cout << "Куб числа " << number << " равен " << result;
return 0;
}
int cube(int number)
{
return number * number * number;
}
imihajlov 30.09.2015 12:01 # +1
Lokich 30.09.2015 12:24 # −1
1024-- 30.09.2015 13:56 # +2
1. Слёзно просим пользователя ввести число
2. Если это не число - возвращаемся к п.1
3. Преобразуем число
Ввели, проверили, в случае чего вернулись - всё очевидно.
Позитивный подход: если только не получится, вернёмся.
В случае с циклом:
1. В цикле, пока не ввели число (почему в цикле, нам же нужно ровно одно число, не?)
1.1. Слёзно просим пользователя ввести число
2. Преобразуем число
Зачем-то создали цикл, чтоб ввести одно(!) число - бред какой-то.
Негативный подход: никто не вводил число с первого раза, поэтому давайте сразу цикл.
1024-- 30.09.2015 14:01 # +1
Кстати, есть написанные на C++ регулярные выражения, уже готовые на этапе компиляции (литералы)?
Т.е. как я делал вызовы цепочек функций, только для регулярок: https://gist.github.com/1024--/d7ac863b94622228beff
roman-kashitsyn 30.09.2015 14:13 # +1
Посмотри Boost.Xpressive, Static Regexes
defecate-plusplus 30.09.2015 14:23 # 0
CHayT 30.09.2015 14:37 # +3
нененене, Андрей Александреску, нененене
этим недоразумением и правда кто-то пользуется в продакшне?
roman-kashitsyn 30.09.2015 14:47 # 0
У нас в коде видел код пары упоротых людей, которые использовали spirit для парсинга двух чиселок из строки, но я бы это выкинул и заменил на scanf.
defecate-plusplus 30.09.2015 15:14 # 0
ага
парсят html там всякий или что попросят
> spirit для парсинга двух чиселок из строки, но я бы это выкинул и заменил на scanf.
но ведь перформанс!
CHayT 30.09.2015 16:08 # +2
он уж перестал увеличивать время компиляции простейшей грамматики до десятков секунд?
парсер-комбинаторы в виде DSL нужны и важны, но C++ отчаянно сосёт по части DSL, поэтому я не понимаю героев, которым не лень упарывать спиритус, вместо того, чтобы взять Bison/Antlr/Haskell
defecate-plusplus 30.09.2015 16:19 # +1
о каком языке мы вообще говорим?
зато он летает когда работает!!1одинодин
за год непрерывной работы можно влёгкую сэкономить до нескольких минут!
на самом деле один раз хорошо написанная грамматика отлично экономит потом время на разборе, доработке и сопровождении кода
а вопросы компиляции ортогональны
cawayz 23.11.2015 23:44 # 0
guest 23.11.2015 23:45 # 0
cawayz 23.11.2015 23:56 # 0
Ты в говно, или ты - говно?
guest 24.11.2015 00:14 # 0
cawayz 24.11.2015 00:15 # 0
guest 24.11.2015 00:17 # +1
Раньше я был никем, а теперь я очень важный человек. И всё благодаря этому сайту.
3_14dar 24.11.2015 00:53 # +1
inkanus-gray 24.11.2015 01:01 # 0
kegdan 24.11.2015 06:09 # 0
Научиться хреново кодить на 5+ языках и давать всем советы
guest 24.11.2015 01:06 # 0