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

Как прочитать несколько байтов в файле с n-го байта по m-й байт ? - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 27, средняя оценка - 4.81
programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
29.10.2011, 10:25     Как прочитать несколько байтов в файле с n-го байта по m-й байт ? #1
Как прочитать несколько байтов в файле с n-го байта по m-й байт ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.10.2011, 10:25     Как прочитать несколько байтов в файле с n-го байта по m-й байт ?
Посмотрите здесь:

C++ Задача : сохранить несколько чисел в файле и потом их прочитать
C++ Задача: прочитать дорожку как сектор длиной в 9216 байт
Для целого числа А выделить старший байт и поставить его на место младшего байта. старший байт при этом обнулить. C++
Зачем биты нужны это меньше байтов но int 32 бита но я не допер зачем это нужно это 4 байта то есть int не может больше 4 байт весить? C++
Перемещение содержимого из одного байта в другой байт C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
cpld
1 / 1 / 0
Регистрация: 28.10.2011
Сообщений: 7
29.10.2011, 10:32     Как прочитать несколько байтов в файле с n-го байта по m-й байт ? #2
Установиться на позицию в файле. Читать байты (char) в цикле от n до m.
В чем сложность?
Net_Wanderer
235 / 208 / 19
Регистрация: 08.06.2011
Сообщений: 467
29.10.2011, 10:35     Как прочитать несколько байтов в файле с n-го байта по m-й байт ? #3
fseek
Байт
 Аватар для Байт
13993 / 8824 / 1231
Регистрация: 24.12.2010
Сообщений: 15,990
29.10.2011, 11:09     Как прочитать несколько байтов в файле с n-го байта по m-й байт ? #4
C
1
2
3
4
FILE *f=fopen("...", "rb");
fseek(f, n, 0);
for(i=n; i<m; i++)
  fread(&bait, 1, 1, f);
Счет Байтов - с нуля
programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
29.10.2011, 13:21  [ТС]     Как прочитать несколько байтов в файле с n-го байта по m-й байт ? #5
Спасибо Байт.
Я знала про fseek, но почему то только щас дошло как использовать
Теперь знаю как записать в один файл несколько других файлов.
А потом вытащить из него эти файлы :cofee:

ps:

fseek(f, n, SEEK_SET);
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
29.10.2011, 14:32     Как прочитать несколько байтов в файле с n-го байта по m-й байт ? #6
Цитата Сообщение от Байт
C
1
2
    for(i=n; i<m; i++)
        fread(&bait, 1, 1, f);
если использовать fread(), то можно просто вызов сделать для m - n
а читать по одному символу из двоичного потока можно через getc()
двоичный поток отличается от текстового тем, происходят ли преобразования в процессе ввода/вывода
к двоичному потоку можно даже fscanf() применять
An1ka
65 / 70 / 2
Регистрация: 30.06.2011
Сообщений: 176
29.10.2011, 15:58     Как прочитать несколько байтов в файле с n-го байта по m-й байт ? #7
fseek для Си. А для C++ seekg:
C++
1
2
3
4
5
6
  char * buffer = new char [m-n];
  ifstream is;
  is.open ( "test.txt", ios::binary);
  is.seekg ( n, ios::beg);
  is.read ( buffer, m-n);
  is.close();
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.10.2011, 16:06     Как прочитать несколько байтов в файле с n-го байта по m-й байт ?
Еще ссылки по теме:

C++ Закодировать файл. Взять 7 байт. Первый бит каждого байта переместить в 8 байт
Как прочитать файл в бинарном режиме по 32 байта C++
C++ Как прочитать несколько байт из файла с n-го бита

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

Или воспользуйтесь поиском по форуму:
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
29.10.2011, 16:06     Как прочитать несколько байтов в файле с n-го байта по m-й байт ? #8
там не m байт читается, а с n по m - то есть m - n + 1, включая m-ный

Добавлено через 4 минуты
например, задано прочитать с 0 по 2
перейти на нулевой и прочитать 2 - 0 + 1 это 0 1 2
Yandex
Объявления
29.10.2011, 16:06     Как прочитать несколько байтов в файле с n-го байта по m-й байт ?
Ответ Создать тему
Опции темы

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