2013-03-31 99 views
0

我想讀取具有一定偏移量的文件中的字節。我不得不在VB6和C++中做同樣的事情。C++ fseek:位置0或1處的第一個字節?

例如像:

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中,第一個字節(使用 「獲取」 的時候)是在位置1 這意味着我不得不說

Get #iFile, 1, nBytes 

...從文件的最開始讀取字節。

我想知道如果fseek也是基於1的,或者它是基於0的。

我必須減少iFirstByteToRead -1以獲得相同的結果嗎?

我的問題是純理論性的,請不要說我的編碼是不好的左右......

謝謝。

+2

「請不要說我的編碼不好或者是......」 - 那是......我甚至不知道要用什麼單詞。無論如何,因爲你需要「純理論性」的東西,你不能只檢查'fseek'的文檔嗎? –

回答

5

簡而言之:fseekSEEK_SET的偏移量是從零開始的(例如,fseek(your_file, 0, SEEK_SET)會將流位置設置爲開始)。

2

第一個字節在文件的偏移量0處。

相關問題