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

Как изменить один байт в бинарном файле? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ почти судоку) http://www.cyberforum.ru/cpp-beginners/thread220405.html
Уже создавала эту тему, но никто не ответил.Может не увидели или не успели.. .Если кто может помочь прошу помогите решить задачу на СИ суть задачи В каждую из шестнадцати клеток квадрата 4х4 расставить числа 1,2...16 так, чтобы сумы чисел в каждом горизонтальном ряду , в каждом вертикальном ряду и на любой диагонали были равны. Ребят помогите пожалуйста. Заранее спасибо.
C++ Найти максимальный элемент среди отрицательных Здравствуйте! Будьте добры, помогите разобраться с этим: нужно написать программу, (используя массивы), которая будет искать максимальный елемент среди отрицательных и минимальный среди тех, что больше ноля. Вроде бы стандартная задача... но что-то неправильно получается... неправильно ищет эти еллементы, и, к тому же, еслив водить массив вручную - вообще не исполняет поиск... В чем ошибка? ... http://www.cyberforum.ru/cpp-beginners/thread220399.html
C++ Создание нового класса
Доброго времени суток!! Задание: 1. Определить пользовательский класс "компьютер". 2. Определить в классе следующие конструкторы: без параметров, с параметрами, копирования. 3. Определить в классе деструктор. 4. Определить в классе компоненты-функции для просмотра и установки полей данных. 7. Написать демонстрационную программу, в которой создаются и разрушаются объекты пользовательского...
Записать один файл в второй. C++
Когда пытаюсь считать данные из файла оно мне выдает ошибку "access violation", вот код: //--------------------------------------------------------------------------- #pragma hdrstop #include <stdio.h> #include <iostream> #include <fstream.h> #include <conio.h> //---------------------------------------------------------------------------
C++ Даны натуральное число n, целые числа a1,a2,...,an http://www.cyberforum.ru/cpp-beginners/thread220374.html
Даны натуральное число n, целые числа a1,a2,...,an.Получить сумму положительных и число отрицательных членов последовательности a1,...,an
C++ не могу разобраться... Собственно задали задачку написать... не понимаю как сделать... текст задачи: Задать матрицу 3х3, разработать схему контрольных сумм для востановления данных в матрице. заранее спасибо! подробнее

Показать сообщение отдельно
byte255
1 / 1 / 0
Регистрация: 26.12.2010
Сообщений: 8
26.12.2010, 00:56     Как изменить один байт в бинарном файле?
Здравствуйте.
Второй день бьюсь над вопросом, просмотрел много примеров, но не понимаю, помогите.
Мне нужно изменить один байт в бинарном файле. Для этого использую следующий код.
Например, есть размером 1 гигабайт, мне нужно изменить десятый байт, записать в него 0x0A.
Для этого использую следующий код.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void BinFile::writeByte(long pos, char byte)
{
    ofstream bin(this->filename, ios_base::binary);
    bin.seekp(pos,ios_base::beg);
    bin.put(byte);
    bin.close();
}
 
int main()
{
   int main ()
  {
     BinFile f("file.bin");
     f.writeByte(10, 10);
  }
}
В итоге, десятый байт дейтвительно становится равен 0x0A, но остальные становятся равны 0х00.
Может быть так, и должно быть?
Вариант
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
using namespace std;
 
int main()
{
    FILE *fw;
    fw = fopen("pack.pck", "wb");
    char ch = 'x';
    fseek(fw, 0, SEEK_SET);
    fwrite(&ch, sizeof(char), 1, fw);
    fclose(fw);
    return 0;
}
приводит к тому же результату - первый (нулевой) байт 0х78, остальные - 0.
Подскажите, в чем дело может быть? Сон потерял =)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 00:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru