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

Парсинг текста - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вот для начинающих решённые элементарные задачки http://www.cyberforum.ru/cpp-beginners/thread339382.html
Напишите программу, вычисляющую среднее арифметическое двух чисел. #include <iostream> using namespace std; void main() { cout<<"Vvedite chislo n1:\n"; int num1; cin>>num1; cout<<"Vvedite chislo n2:\n"; int num2;
C++ Параллельная прямая Надо по заданным A,B,C найти две прямые на расстоянии от заданной от R. Кто-нибудь парочку формул для нахождения не скинет? http://www.cyberforum.ru/cpp-beginners/thread339369.html
C++ Получи дерево
Задача такая: Дан связный неориентированный граф без петель и кратных ребер. Разрешается удалять из него ребра. Требуется получить дерево. (http://www.e-olimp.com/problems/978) #include <iostream> #include <cmath> #include <vector> #include <map> #include <stdio.h> #include <string> #include <algorithm> #include <set> #include <ctime>
Вопрос про friend C++
Вот мой код. #include<iostream> using namespace std; class Bottle; class Carton { public: Carton(const Bottle& xBottle) { m_X = xBottle.m_H;
C++ Statiс Поля Класса http://www.cyberforum.ru/cpp-beginners/thread339337.html
Имея класс class Worker { static const int Part2 = 0x22; static const int Part3 = 0x44; public: static int Part1; int part1(){return Part1;} // не могу обратиться к полю int part2(){return Part2;} int part3(){return Part3;}
C++ игра галактика здравствуйте!Решил написать игру галактика(в консоле).Подскажите примерный алгоритм написания(раньше игры в консоле не писал) подробнее

Показать сообщение отдельно
Ma3a
Эксперт C++
616 / 460 / 31
Регистрация: 28.01.2011
Сообщений: 605
05.08.2011, 20:25
Раз уж предложили вариант со спиритом, тогда и я чтоль внесу свои пять копеек, на spirit V2:

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
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
 
#include <boost/spirit/include/qi.hpp>
 
bool ParseNumbers(std::string & str, std::vector<int> & nums)
    {
    std::string::iterator begin = str.begin(), end = str.end();
 
    namespace qi = boost::spirit::qi;
    return qi::parse(begin, end,
                (
                '{' >>
                    (
                    qi::omit[*(qi::char_ - ':')] >> ':'
                    >> qi::int_
                    ) % ','
                >> '}'
                ), nums
            ) && begin == end;
    }
 
int main()
    {
    std::string str 
        = "{\"timer1\":0,\"timer2\":0,\"timer3\":8153,\"timer4\":22569,\"timer5\":36983,\"timer6\":738786}";
    std::vector<int> nums;
 
    ParseNumbers(str, nums);
 
    std::for_each(nums.begin(), nums.end(), [](int n)
        {
        std::cout << n << ' ';
        }
    );
    }
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru