我有一個ASCII二進制文件看起來是這樣的:尋求到線路號C
00010110001001000110011001000111
01011000011100001010100001001000
11110001011010000010010101111010
00000000000000000000000000000000
01011010101000010001010101110000
每一行有32個字符(因此它是一個長度爲33的與\n
)。我試圖找到我的文件指針,指向0x0
行(上例中的第4行)後面的行。
我做了如下。首先,我計算了文件中有多少行。所以在這種情況下5
。我還在持有0x0
一行的行上保留了一個索引。所以4
在這種情況下。我通過33
它返回字符0x0
後的第一個號碼是(我要補充一個1,因爲這實際上是在0x0
行結束返回\n
乘以4
。
在那之後,我只是用fseek
。但是,它不工作什麼是錯在這裏這裏是我的代碼:?!
int bytes = 33 * c;
fseek(fp, bytes+1, SEEK_SET);
char test[34];
printf("HERE: '%s'", fgets(test, 34, fp));
感謝
包含零線的行號是第3行,而不是第4行。 –
不是。我得到'(null)' – darksky
任何時候當你說「它不工作」或「我得到一個錯誤」時,你需要正確解釋**這些短語的含義。確切地*如何*是「不工作」?如果這是一個錯誤,** exact **錯誤信息是什麼?請記住,我們無法從這裏看到您的屏幕,我們唯一需要做的就是您在問題中輸入的內容。如果你需要幫助解決問題,你必須清楚你實際想要解決的問題。換句話說,幫助我們來幫助你。 :) –