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

Как побайтно записать целое в файл - C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.83
kashabon
0 / 0 / 0
Регистрация: 25.07.2008
Сообщений: 3
25.07.2008, 09:57     Как побайтно записать целое в файл #1
Как побайтно записать целое в файл с помощью fputc(). А потом считать эти 4 байта fgetc() и опять превратить в то же целое, которое писали.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.07.2008, 09:57     Как побайтно записать целое в файл
Посмотрите здесь:

C++ Как записать битсет в файл?
Как передать в функцию число и структуру побайтно? C++
C++ Как записать структуру в файл?
C++ Подскажите как побайтно считать файл
Как записать в файл FileWrite(...) ? C++
C++ Как побайтно считать информацию из исполняемого файла
Ввести с клавиатуры целое число n и записать в новый файл те слова, которые содержат n или больше согласных C++
C++ Long int записать в hex побайтно
Как записать в файл данные? C++
C++ Как побайтно считать бинарник?
C++ Как записать вектор в файл?
Как записать файл в массив? C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Lord_Voodoo
Супер-модератор
 Аватар для Lord_Voodoo
8506 / 2173 / 61
Регистрация: 07.03.2007
Сообщений: 10,844
Завершенные тесты: 1
25.07.2008, 14:16     Как побайтно записать целое в файл #2
ну можно маской с помощью побитовой операции and выделить каждый байт и потом писать, а при сборке нужно использовать исключающее или...
вот примитивный код (доведешь уже сам):
Код
int main()
{
  using namespace std;
  int num, num1 = 0;
  int b1 = ' ', b2 = ' ', b3 = ' ', b4 = ' ';
  cin>>num;
  b1 = (num & 0xff000000)>>24;
  b2 = (num & 0x00ff0000)>>16;
  b3 = (num & 0x0000ff00)>>8;
  b4 = (num & 0x000000ff);
  cout<< "b1: "<< int(b1)<<" b2: "<< int(b2)<<" b3: "<< int(b3)<< " b4: "<< int(b4)<<endl;
  num1 = (((((b1<<8) ^b2)<<8)^b3)<<8)^b4;
  cout<<num1<<endl;
  return 0;
}
kashabon
0 / 0 / 0
Регистрация: 25.07.2008
Сообщений: 3
25.07.2008, 14:56  [ТС]     Как побайтно записать целое в файл #3
Благодарю за ответ, но это я в курсе был. Показалось - больно длинно.
По идее в самой машине - все побайтно. потому должно быть просто.

Чо то в голову мысль засела про то что, мол, int = 4 байта и, типа, замутить
char[3]. Ну и указателями переприсвоить. Не прошло - компилятор развонялся.

Или я чего недопонял, или только побитно и сдвигами на байты делить?
Хотелось до дна понять (вспомнить), как это все там происходит.

(Я после оочень длительного перерыва занялся С. Амнезия полная. Вот до чего винда доводит
Lord_Voodoo
Супер-модератор
 Аватар для Lord_Voodoo
8506 / 2173 / 61
Регистрация: 07.03.2007
Сообщений: 10,844
Завершенные тесты: 1
25.07.2008, 15:05     Как побайтно записать целое в файл #4
ну понимаешь, все равно приходится вырезать байты, простым переприсвоением такое не прокатит, будет на конфликт типов ругаться, да и я тебе код простой выложил, можно же все и более изящно сделать... я так сказать сам механизм расписал... так все электронщики делают, ты же к отдельному биту иначе и не обратишься, только побитовыми операциями, на то они и придуманы...
XuTPbIu_MuHTAu
Эксперт C++
 Аватар для XuTPbIu_MuHTAu
2219 / 734 / 10
Регистрация: 27.05.2008
Сообщений: 1,507
27.07.2008, 02:01     Как побайтно записать целое в файл #5
Если тебе не обязательно использовать fputc и fgetc,
я бы предложил fwrite(...). Мне нравится...)
kashabon
0 / 0 / 0
Регистрация: 25.07.2008
Сообщений: 3
28.07.2008, 10:06  [ТС]     Как побайтно записать целое в файл #6
to WooDooMan666: Ну вот, помогли, товарищ. Все работает. Сапасиб.

to XuTPbIu_MuHTAu: хотел понять я как это делается на низком уровне. А так можно и fwrite(...). ЗАсела эта мысля про char bytes[3] ф башке, теперь можно ее выгнать.
:huh:
Yandex
Объявления
28.07.2008, 10:06     Как побайтно записать целое в файл
Ответ Создать тему
Опции темы

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