C ++ fseek: первый байт в позиции 0 или 1?

Я хочу читать байты из файла с определенным смещением.

Я должен сделать то же самое в VB6 и из C ++.

Например, вот так:

FILE *file =fopen(szFileName,"rb");
fseek( file, iFirstByteToRead, SEEK_SET);
fread(nBytes,sizeof(unsigned char), iLenCompressedBytes, file);

(да, я знаю, что nBytes не объявлен как байт, но я все равно назвал его nBytes, чтобы сохранить мой VB6 имен).

В VB6 я должен использовать

Get #iFile, iFirstByteToRead, nBytes

В VB6 первый байт (при использовании «Get») находится в позиции 1.
Это значит, что я должен сказать

Get #iFile, 1, nBytes

… читать байты с самого начала файла.

Я хотел бы знать, если fseek также на основе 1 или 0.

Должен ли я уменьшить iFirstByteToRead на -1, чтобы получить те же результаты?

Мой вопрос носит чисто теоретический характер, пожалуйста, не говорите, что мое кодирование плохое или около того …

Спасибо.

0

Решение

В короткие сроки: fseek смещения для SEEK_SET основаны на нуле (например, fseek(your_file, 0, SEEK_SET) установит позицию потока в начало).

5

Другие решения

Первый байт имеет смещение 0 в файле.

2

По вопросам рекламы [email protected]