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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.08.2009, 21:53   #21
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию

шифровка
Код:
#include <iostream.h>
#include <fstream>
main()
{
        ifstream fin("2.bmp",ios::binary);
        ofstream fout;
        long len;
        char* p;
        fin.seekg(0,ios::end); //перемещает курсор в конец файла
        len = fin.tellg(); //подсчитывает сколько
        // символов от начала файла до положеня курсора
        fin.seekg(0,ios::beg);//перемещает курсор в начало файла
        p = new char[len+1];
        fin.read(p, sizeof(char)* len);
        for (unsigned int i=0;i<sizeof(char)*len;i++)
                cout<<hex<<int(p[i]);
        fin.close();
        fout.open("2.bmp", ios::binary);
        for (unsigned int i=0;i<sizeof(char)*len;i++)
        p[i]+=5;
        fout.write((char*)&p, sizeof(char)*len);
        delete[]p;
        system("pause");
}
и
дешифровка
Код:
#include <iostream.h>
#include <fstream>
main()
{
        ifstream fin("2.bmp",ios::binary);
        ofstream fout;
        long len;
        char* p;
        fin.seekg(0,ios::end); //перемещает курсор в конец файла
        len = fin.tellg(); //подсчитывает сколько
        // символов от начала файла до положеня курсора
        fin.seekg(0,ios::beg);//перемещает курсор в начало файла
        p = new char[len+1];
        fin.read(p, sizeof(char)* len);
        for (unsigned int i=0;i<sizeof(char)*len;i++)
                cout<<hex<<int(p[i]);
        fin.close();
        fout.open("2.bmp", ios::binary);
        for (unsigned int i=0;i<sizeof(char)*len;i++)
        p[i]-=5;
        fout.write((char*)&p, sizeof(char)*len);
        delete[]p;
        system("pause");
}
всё равно дешифрованный файл не открывается. Что мне сделать чтоб открывался??
Dimarik вне форума Ответить с цитированием
Старый 16.08.2009, 22:02   #22
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Что мне сделать чтоб открывался??
То, о чем я вам уже не раз повторил - уберите амперсанд отсюда
Код:
 fout.write((char*)&p, sizeof(char)*len);
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 16.04.2011, 22:52   #23
double-int
Новичок
Джуниор
 
Регистрация: 12.04.2011
Сообщений: 2
По умолчанию

Извиняюсь, я попробовал запустить ваш код у себя, тут - fin.seekg(0,ios::end); пишет такую ошибку:

error C2664: 'class std::basic_istream<char,struct std::char_traits<char> > &__thiscall std::basic_istream<char,struct std::char_traits<char> >::seekg(long,enum std::ios_base::seekdir)' :
cannot convert parameter 2 from 'enum ios::seek_dir' to 'enum std::ios_base::seekdir'

подскажите пожалуйста, в чем дело?
double-int вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Хранение текста в двоичном файле Nitrino Общие вопросы C/C++ 63 04.06.2009 02:46
Десятичные дроби в двоичном виде Ukrajinec Помощь студентам 2 13.04.2009 11:29
Вывод байта в двоичном пердставлении (С++) trollik Помощь студентам 6 01.09.2008 23:55
Необходимо представить десятичное число в двоичном виде Xardas Паскаль, Turbo Pascal, PascalABC.NET 2 26.01.2008 00:54