Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
evgenuy77
0 / 0 / 0
Регистрация: 29.01.2017
Сообщений: 2
1

Реализация алгоритма сжатия RLE

16.05.2019, 20:24. Просмотров 138. Ответов 0
Метки нет (Все метки)

С++ начал изучать недавно, решил написать RLE. Мой код работает не так, как бы я хотел. Если я в условии поставлю <8 вместо <255, то работать будет, но не идеально. Хочу, чтобы ограничение было 255 байт. Помогите это сделать пожалуйста
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
#include <stdio.h>
#include "iostream" 
#include <fstream>
 
 
using namespace std;
//Кодер
int main()
{
 
    char buf, a, b;
    int i;
    setlocale(LC_ALL, "rus");
    const char* fName1 = "D://RLE/Image1.bmp";
    const char* fName2 = "D://RLE/2.rle";
 
    ifstream in(fName1, ios::binary | ios::in);
    ofstream out(fName2, ios::binary | ios::out);
    if (!in.read((char*)& buf, sizeof(buf)).eof())  //!ifile.read((char*)&Note, sizeof(Notes)).eof()) 
    {
        i = 0;
        while (!in.read((char*)& a, sizeof(a)).eof())
        {
            if ((buf == a) && (i < 8))
            {
                i++;
            }
            else
            {
                out.write(&buf, 1);
                b = i;
                out.write(&b, 1);
                i = 1;
                buf = a;
            }
        }
        out.write(&buf, 1);
        b = i;
        out.write(&b, 1);
    }
    in.close();
    out.close();
 
    return 0;
      
    //**************************************************************************************************
        // Декодер 
    //char buf, a, b;
    //int i, a1, b1;
    //setlocale(LC_ALL, "rus");
 
    //ifstream in("d://RLE/2.rle", ios::binary | ios::in);
    //ofstream out("d://RLE/result.bmp", ios::binary | ios::out);
    //while (!in.read((char*)& a, sizeof(a)).eof()) //!in.read((char*)& buf, sizeof (buf)).eof()
    //{
    //  if (!in.read((char*)& b, sizeof(b)).eof())
    //  {
    //      for (i = 1; i <= b; i++)
    //      {
    //          out.write(&a, sizeof(a));
    //      }
    //  }
    //}
    //in.close();
    //out.close();
 
    return 0;
}
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.05.2019, 20:24
Ответы с готовыми решениями:

Реализация алгоритма RLE
Есть задачка, надо реализовать две функции &quot;закодировать&quot; и &quot;раскодировать&quot; массив данных типа: ...

Реализация алгоритма сжатия JPEG
помогите пожалуйста! после завтра диплом уже защищать, а я ни на шаг не могу сдвинуться с этой...

Требуется реализация простейшего алгоритма сжатия данных (кодирование повторов)
Требуется программная реализация простейшего алгоритма сжатия данных(кодирование повторов)....

Алгоритм сжатия RLE. От этого зависит зачет по предмету)
Напишите программу, которая: 1. будет считывать с клавиатуры раздельно (через Enter) вводимую ...

Написать программу на основе алгоритма RLE (сжатие/восстановление массива)
Массив из 0 и 1 целых чисел. Массив надо сжать, а затем восстановить массива. Надо написать...

0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.05.2019, 20:24

помогите с реализацией алгоритма сжатия Хаффмана
помогите с реализацией алгоритма сжатия Хаффмана есть код в с++ в консольном приложении,...

Разработка алгоритма и программы сжатия и восстановления массива
Добрый день! форумчане помогите сделать работу, возможно кому-то такая задача попадалась: Массив...

Программирование и исследование алгоритма сжатия информации: с чего начать?
Преподаватель задал задание написать программу... на тему : &quot;Программирование и исследование...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.