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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
OlegPL
5 / 5 / 0
Регистрация: 22.10.2013
Сообщений: 100
#1

Бинарная запись в конец файла JPG и считывание - C++

21.02.2014, 00:23. Просмотров 338. Ответов 3
Метки нет (Все метки)

Здравствуйте, задача поставлена такая: Написать 2 функции. Первая функция записывает бинарные данные в конец файлу к примеру .jpg. Вторая что бы считать файл с конца.
Мой наработанный материал...
C++
1
2
3
4
5
6
void JPG::writeToJpg()       // Записывает в файл
{
    ofstream fileWrite("Cherry.jpg", ios::binary | ios::ate);
    fileWrite.write((char*)&_password, sizeof(_password));
    fileWrite.close();
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
string JPG::getPass()      // Считывает с файла
{
    string tmp;
    char symb;
    ifstream fileRead("Cherry.jpg", ios::binary);
    fileRead.seekg(-8, ios::end);      // Размер пока просто подгонял по записываемой строке
    for(int i = 0; !fileRead.eof(); i++)
    {
        if(!fileRead.read((char*)&symb, sizeof(char)))
            continue;
        tmp.push_back(symb);
    }
    return tmp;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.02.2014, 00:23     Бинарная запись в конец файла JPG и считывание
Посмотрите здесь:

Запись в конец файла C++
C++ Запись и считывание из файла
Запись информации в конец файла C++
C++ Считывание и запись файла блоками
Считывание из файла трехмерного массива и запись C++
C++ Запись строки в конец файла
Запись и считывание из бинарного файла C++
Запись структуры в конец файла C++
Построчная запись и считывание из файла C++
C++ Запись в конец файла
C++ Запись и считывание в/из ФАЙЛА
C++ Запись и считывание объектов класса в/из файла

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5413 / 4809 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
21.02.2014, 00:54     Бинарная запись в конец файла JPG и считывание #2
Зачем посимвольно читать? Как записывали, так и читайте. Когда курсор будете передвигать, не применяйте в параметрх seekg(), sizeof(), а то проблемы будут с отрицательным смещением. Сначала величину смещения курсора вычислить (через sizeof()), потом передать это смещение, с отрицательным знаком, в seekg().
OlegPL
5 / 5 / 0
Регистрация: 22.10.2013
Сообщений: 100
21.02.2014, 01:32  [ТС]     Бинарная запись в конец файла JPG и считывание #3
Изменил, выводит установленное слово как нужно. Но по окончании работы программы выводится окно с ошибкой которое постоянно грузится....
C++
1
2
3
4
5
6
7
8
9
string JPG::getPass()
{
    string tmp;
    char symb;
    ifstream fileRead("Cherry.jpg", ios::binary);
    fileRead.seekg(-_size, ios::end);     // _size - это поле класса которое принимает размер слова которое записано как _size = sizeof(_password);
    fileRead.read((char*)&tmp, sizeof(_password));  // _password - записанное в него слово, когда ставлю просто string, выдает ту же ошибку
    return tmp;
}
alsav22
5413 / 4809 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
21.02.2014, 01:58     Бинарная запись в конец файла JPG и считывание #4
string не подходит для таких дел. Память под string, это не сама строка.

Добавлено через 2 минуты
Если нужно именно бинарное чтение\запись, используйте, вместо string, массивы char фиксированного размера.
Yandex
Объявления
21.02.2014, 01:58     Бинарная запись в конец файла JPG и считывание
Ответ Создать тему
Опции темы

Текущее время: 16:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru