Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.09.2015, 00:53   #1
Otar4ik
Форумчанин
 
Регистрация: 16.04.2010
Сообщений: 123
По умолчанию Алгоритм RLE

Прошу помочь мне выйти из тупика

Задачи:
1. Написать функции чтения и записи данных в двоичный файл.
2. Реализовать алгоритм поиска префикса в байтовом массиве.
3. Реализовать алгоритм кодирования данных посредствам RLE кода.
4. Предложить и реализовать алгоритм декодирования RLE кода.


Код:
#include <ios>
#include <iostream>
#include <stdio.h>
#include <conio.h>

using namespace std;

void writetobf(FILE *f,int n,int a,int i) ///Функция  записи данных в двоичный файл
{
f=fopen("D:\test1.dat", "wb");
cout<<"Введите количество чисел для записи в двоичный файл";
cin>>n;
fwrite(&n, sizeof(int), 1, f);//запись числа в двоичный файл
for (i=0; i<n; i++)
{
cout<<"Введите числа в файл";
cin>>a;
fwrite(&n, sizeof(int), 1, f);
}
fclose(f);//закрываем файл
}

void readinbf(FILE *f,int n,int *mas,int i)///Функция чтения данных
{
f=fopen("D:\test1.dat", "rb");
fread(&f, sizeof(int), 1, f);//считываем из файла одно целое число в переменную n
cout<<"n="<<n<<endl;//вывод n на экран
fread(mas, sizeof(int),1, f);//чтение чисел из файла в массив
for (i=0; i<n; i++)
cout<<mas[i]<<"\t";//вывод массива на экран
cout<<endl;
//закрываем файл
fclose(f);
}

void findinbytearray()///Алгоритм поиска префикса в байтовом массиве
{
	char pref;
	cout<<"Введите префикс"<<endl;
		cin>>pref;


}

void rlecoding(FILE *f,char sym)///Алгоритм кодирования данных посредствам RLE кода
{
	f=fopen("D:\code.dat", "wb");
	int kol=1;
	 while(f.good())
    {
        f.get(sym);//считываем символ
        if(sym != f.peek()) // если символ не совпадает со следующим символом в файле
        {
            f<< kol << sym; // записываем результаты в выходной файл
            kol=0;
        }
        kol++;
}

void rledecoding()///Алгоритм декодирования RLE кода
{
	f=fopen("D:\decode.dat", "wb");
	 while(f1.peek()!=EOF)
    {
        f1.get(sym1);
        f1.get(sym2);
        for(int i=0; i < sym1 - zero; i++)
            file_decompr << sym2;
    }
}

int main()
{
FILE *f;
int i=0;
int n=0;
int a=0;
char sym;
int *mas = new int[];
	setlocale(LC_ALL,"Russian");
	writetobf(f,n,a,i);
	readinbf(f,n,mas,i);
	system("pause");
	return 0;
}
Otar4ik вне форума Ответить с цитированием
Старый 27.09.2015, 07:44   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А в чем тупик то? Код же есть
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
RLE шифрование guzel20 Помощь студентам 2 06.12.2012 13:02
RLE алгоритм на Visual C++ Bottieyoyo Visual C++ 2 11.11.2012 13:52
RLE компресія на с++ mato Общие вопросы C/C++ 1 25.03.2011 19:00
RLE JScript. dixonich Помощь студентам 7 11.11.2010 23:09
RLE FeNiX_IU8 Помощь студентам 1 29.10.2009 17:54