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

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

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

Показать сообщение отдельно
EvgeZ
0 / 0 / 0
Регистрация: 11.12.2013
Сообщений: 26
14.04.2014, 20:39     RLE декодинг
Здравствуйте, товарищи прогеры)
Есть наполовину рабочий код алгоритма сжатия-разжатия 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....."
В-третьих, на файлах небольшого размера не работает вообще
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 07:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru