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

Битстаффинг - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Устал искать баг http://www.cyberforum.ru/cpp/thread338761.html
Проблемма проста - нужно удалить из вещественной матрицы строку и столбец, верней ряд строк и столбцов (условие - нулевой элемент на главной диагонале, даже привожу рисунок) Пропускаю матрицу А и вектор свободных членов В через вот такой фильтр void compress(int m, double **a, double *b) { for(int i = 0,j; i < m; i++) { if(a == 0) {
C++ Обработка файов регулярными выражениями. Задайте верное направление. Исходная задача. Необходимо обработать текстовый файл "умным образом". Где то достаточно просто замены "А" на "Б"; где то необходимы регулярные выражения (например, дату из формата dd.mm.YYYY в YYYY-mm-dd) и т.п. Соответственно полгаю использовать регулярные выражения и boost. Думаю хранить пары "рег.выражение"/"на что заменять" хранить в текстовом файле, затем... http://www.cyberforum.ru/cpp/thread338680.html
C++ Выбор технологии
Всем привет! У меня такой вопрос Вот я сейчас работаю в компании, которая занимается разработкой ПО на С++ Начал разработку проекта Про технологию речи не шло, я скачал много учебников (имею небогатый опыт прогарммирования на С++, и в учебниках есть необходимость) Так уж получилось, что почти во всех учебниках, которые я скачал, и которые затрагивают Visual C++, речь идёт об MFC Поэтому...
RxGifAnimator C++
Всем привет дайте мне кто нибудь файл RxGifAnimator для С Добавлено через 10 секунд кому не жалко
C++ Работа с pdf в Cairo. http://www.cyberforum.ru/cpp/thread338459.html
Помогите разобраться с выводом графики в pdf. Английский не знаю. Очень трудно читать буржуйские мануалы, 3 день парюсь. Самый важный вопрос: Какая функция начинает вторую страницу pdf??? Менее важные: Как допустим открыть pdf и не удаляя его, продолжить на нем рисовать?? Добавлено через 1 час 21 минуту
C++ При запуске консоль не поддерживается Добрый день. Есть такая проблема, прога работает нормально но одно диалоговое окно задолбало(извините...)... При запуске прилрожения выскакивает: Диалоговое окно "WARNING" Selected console type is not supported in your configuration, using External terminal instead Типа консоль не поддерживается в данной конфигурации...а так прога запускается и работает, помогите исправить если конечно... подробнее

Показать сообщение отдельно
-=ЮрА=-
Заблокирован
Автор FAQ
03.08.2011, 23:06     Битстаффинг
Вот перевод с вставкой битов, для наглядности делал вставку не 0 а 2-ка, это лего изменить
Код и скриншот работы
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
#include <windows.h>
#include <stdio.h>
#include <ctype.h>
#include <conio.h>
 
char * str = (char *)malloc(sizeof(char));
char * bin = (char *)malloc(sizeof(char));
 
char * get_text(char * s, int &Len);
char * str2bin(char * s, char * bin);
char * int2bin(int val, char * bin);
char * bitstuf(char * bin, char *ins_after, char bit);
char * inschar(char * s, int i, char ch);
 
int main()
{
    int sLen = 0;
    do
    {
        printf("Enter input string\r\n");
        str = get_text(str,sLen);bin[0] = '\0';
        printf("\tBinary string\r\n");
        printf("%s\r\n",(bin = str2bin(str,bin)));
        printf("\tBits after bitstuf\r\n");
        printf("%s\r\n",(bin = bitstuf(bin, "11111", '2')));
        printf("[Y/N] - Enter new string\r\n");
    }
    while('Y' == toupper(getch()));
    return 0;
}
 
char * get_text(char * s, int &Len)
{
    if(s)
    {
        Len = 0;
        while((s[Len] = getchar()) != '\n')
            s = (char *)realloc(s,(1 + (Len = Len + 1))*sizeof(char));
        s[Len] = '\0';
    }
    return s;
}
 
char * str2bin(char * s, char * bin)
{
    int i = 0;
    while((s + i)[0] != '\0')
    {
        bin = int2bin(s[i], bin);
        i++;
    }
    return bin;
}
 
char * int2bin(int val, char * bin)
{
    int i = 0,len = strlen(bin);
    bin = (char *)realloc(bin,len + 8);
    bin[len] = '0';
    while(0 < val)
    {
        bin[len + 6 - i] = '0';
        if(val%2 != 0)
            bin[len + 6 - i] = '1';
        val = val/2;
        i++;
    }
    bin[len + 7] = '\0';
    return bin;
}
 
char * bitstuf(char * bin, char *ins_after, char bit)
{
    char * buf;
    int pos = 0;
    if(bin && ins_after)
    {
        buf = strstr(bin + pos,ins_after);
        while(buf)
        {
            pos = strlen(bin) - strlen(buf) + strlen(ins_after);
            bin = inschar(bin, pos, bit);
            buf = strstr(bin + pos + 2,ins_after);
        }
    }
    return bin;
}
 
char * inschar(char * s, int i, char ch)
{
    int sLen;
    if(s)
    {
        sLen = strlen(s);
        s = (char *)realloc(s,(sLen + 1)*sizeof(char));
        memcpy((void *)&s[i + 1],(void *)&s[i],sLen - i);
        s[sLen + 1] = '\0';
        s[i] = ch;
    }
    return s;
}
Миниатюры
Битстаффинг  
 
Текущее время: 08:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru