Форум программистов, компьютерный форум, киберфорум
Наши страницы

RLE декодинг - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вывести строки с нужными символами http://www.cyberforum.ru/cpp-beginners/thread1148404.html
Здравствуйте. У меня есть много строк, я приведу пример из нескольких: Стукало Оксана Александровна 12081975:ж:нв:1: 3:пр:+: 8100:12 Сысоева Елена Алексеевна 25111972:ж:во:1:...
C++ Ввод-вывод в языке Си с использованием файлов Помогите, пожалуйста Нужно написать программу, производящую обработку данных, содержащихся в файле. Результат программы так же записывается в текстовый файл задание:напечатать в алфавитном порядке... http://www.cyberforum.ru/cpp-beginners/thread1148400.html
Создание класса строка и функции члена C++
Здравствуйте, есть задание: Создать класс строка. Максимальное число символов в строке – 79. Определить, содержит ли строка символы отличные от букв. - Ввод строки и определение ее длины оформить...
C++ Считать из введённого предложения по одному символу через цикл
В программу должно вводиться предложение. Если предложение заканчивается пробелом с точкой, пишем "да" , иначе пишем "нет" string read() { string ret = " "; char token = ' '; cin >>...
C++ Передвижение курсора в c++ http://www.cyberforum.ru/cpp-beginners/thread1148374.html
Здравствуйте, Я начал писать небольшую программу которая должна выполнять заданный алгоритм действий. Суть в чем: 1)Ищем например зеленый цвет на экране(или заданной области) 2)Перемещаем туда...
C++ Для заданной строки построить строку, в которой содержаться только буквы латинского алфавита исходной строки Для заданной строки построить строку, в которой содержатся только буквы латинского алфавита исходной строки. 1. Win32 2. Код нужен не в консоли,просто я так понял здесь все работают именно через... подробнее

Показать сообщение отдельно
EvgeZ
0 / 0 / 0
Регистрация: 11.12.2013
Сообщений: 26

RLE декодинг - C++

14.04.2014, 20:39. Просмотров 321. Ответов 0
Метки (Все метки)

Здравствуйте, товарищи прогеры)
Есть наполовину рабочий код алгоритма сжатия-разжатия RLE
Код брал здесь - http://ucxodnuku.ru/algoritm/gruppov...l#comment-1646
На сжатие алгоритм работает на ура, но вот с разжатием приходится туговато
Я переписал код в int main(), без функций. Прошу помощи

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 <fstream>
 
using namespace std;
 
int main()
{   
    std::ifstream file("INPUT_TEXT.txt");
    std::ofstream file_compr("COMPRESSED_TEXT.txt");
    
    char sym;//символ, который мы будем считывать
    int kol=1;// количество повторяющихся символов
 
    while(!file.eof())
    {
        file.get(sym);//считываем символ
        if(sym!=file.peek())// если символ не совпадает со слеующим символом в файле
        {
            file_compr<<kol<<sym;// записываем результаты в выходной файл
            kol=0;
        }
        kol++;
    }
 
    std::ifstream f1("COMPRESSED_TEXT.txt");
    std::ofstream file_decompr("DECOMPRESSED_TEXT.txt");
 
    char sym1,sym2;// предыдущий и последующий символы
    while(f1.peek()!=EOF)
    {
        f1>>sym1>>sym2;// считываем символы
        for(int i=0;i<sym1-48;i++)
            file_decompr<<sym2;
    }
 
    system("PAUSE");
    return 0;
}
Добавлено через 2 минуты
В чем трудности с разжатием:
Во-первых, оно не работает, если в INPUT_TEXT.txt написано что-то вроде "AAAAAAAAAAAA..."
Во-вторых, оно работает, если в INPUT_TEXT.txt написано "ABABABABABA....."
В-третьих, на файлах небольшого размера не работает вообще
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.