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

Как распарсить строку и положить данные в элементы структуры - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ структуры с указателями http://www.cyberforum.ru/cpp-beginners/thread858135.html
Ребят, не могу понять как сделать 2 структуры вместе, при этом я могу что то в них поменять, например, как здесь # include <iostream> # define N 10 using namespace std; struct computer { char firma ; char CPU ; int kolvo;
C++ Для заданных значений аргумента Х вычислить значения суммы S и функции Y или Z. Вычисление S произвести с точностью E Составить программы в среде Dev -C++ 1. Для заданных значений аргумента Х вычислить значения суммы S и функции Y или Z. Вычисление S произвести с точностью E. http://www.cyberforum.ru/cpp-beginners/thread858131.html
Бинарные файлы: на место тех позиций, у которых значение меньше определенного числа, записать 0 C++
Здравствуйте! У меня проблема: есть созданный бинарный файл и я не могу у него заменять определенный позиции на другие. Т.е. вот задание: создать бинарный файл, в него записать матрицу mxm. Пробежаться по всем диагональным элементам и все на место тех позиций, у которых значение меньше определенного числа, записать 0. Вот мой код: #include <iostream> #include <stdio.h> #include <stdlib.h>...
Нужно еще два способа (вывести введенное слово наоборот) C++
Ребят у меня программа выводит введенное слово наоборот(То есть ввожу привет, а выводит тевирп). Помогите сделать тоже самое только двумя другими способами. Вот код: #include <stdio.h> #include <string.h> #include <conio.h> int main () { char str; int n=0,i,j; printf("vvedite stroku\n");
C++ система масового обслуживания с отказами на обычном dev C++ http://www.cyberforum.ru/cpp-beginners/thread858018.html
помогите, смоделировать система масового обслуживания с отказами на обычном dev C++
C++ Подсчет попарно неизоморфных графов, содержащих не более 4 вершин Пишу курсовую по программе,которая считает попарно неизоморфные графы,содержащие не более 4 вершин.вот прога: #include <stdio.h> #include <conio.h> #define NMAX 4 // максимальное число вершин графа() */ /*---------------------------------------------------------*/ /* функция ввода матрицы смежности */ /*---------------------------------------------------------*/ void... подробнее

Показать сообщение отдельно
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
07.05.2013, 20:16     Как распарсить строку и положить данные в элементы структуры
Не знаю насколько это актуально, но сделал на основе регулярных выражений:
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
#include <iostream>
#include <string>
#include <sstream>
#include <fstream>
#include <vector>
#include <iterator>
#include <algorithm>
#include <boost/regex.hpp>
 
struct table
{
    std::vector<std::string> vs;
};
 
int main() 
{
    std::ifstream ifs("D:/file.txt");
    if (ifs.is_open())
    {
        std::string s((std::istreambuf_iterator<char>(ifs.rdbuf())), std::istreambuf_iterator<char>());
        std::vector<table> vt;
        boost::regex reg("^(\\w+\\|){6}\\w+$");  //фильтруем строку нужного формата
    
        for (boost::sregex_iterator i(s.begin(), s.end(), reg); i != boost::sregex_iterator(); ++i)
        {
            std::string line = (*i)[0];
            static boost::regex reg_in("(\\w+)"); //ищем совпадения
            table temp_tb;
            for (boost::sregex_iterator j(line.begin(), line.end(), reg_in); j != boost::sregex_iterator(); ++j)
            {
                temp_tb.vs.push_back((*j)[0]);
            }
            vt.push_back(std::move(temp_tb));
        } 
            
        for (const auto& i : vt)
        {
            for (const auto& j : i.vs) std::cout<<j<<" ";
                std::cout<<std::endl;
        }
    }
    else
        std::cerr << "Unable to open file\n";
    
    return 0;
}
Входные данные (с возможным мусором в строках, которые будут пропускаться):
aa|ab|ac|ad|ae|af|ag
ba|bb|bc|bd|be|bf|bg
ca|cb|cc|cd|ce|cf|cg
 
Текущее время: 15:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru