我需要編寫一個程序來讀取-32767到32767範圍內的二進制文件。到目前爲止,下面的腳本將二進制文件讀入-128的範圍約二進制文件127將二進制文件讀取到-32767到32767的整數範圍
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
FILE *fp = NULL;
signed char shint[2000] = "";
int i = 0;
size_t bytes = 0;
if ((fp = fopen("raw_data.ht3", "rb")) == NULL) {
printf ("could not open file\n");
return 0;
}
if ((bytes = fread(&shint, 1, 2000, fp)) > 0) { //bytes more than 0
for (i = 0; i < bytes; i++) {
printf ("%d\n", shint[i]);
}
}
fclose(fp);
return 0;
}
更多信息,我的講師說,二進制文件應該被讀入4個字節的數據(我不知道我的寫法就在這裏)。數據非常大,所以我停止了數據讀取直到2000年的數據。儘管將來我需要閱讀所有這些內容。
這是我想在一天結束繪製。獲得所需數據後,我會打電話給我們的matlab或scilab。
謝謝!
你可能想讀或者2或一次4個字節。 (你的問題標題建議兩個字節,你的講師說四個)。你可以使用'fread'。 (字節交換在理論上是一個問題,但對於此練習,您可能可以忽略它。) –
如何一次讀取2或4個字節? – fizsics
你的問題說你想要一個簡短的[]數組。你的老師說你想要一個int []數組。 –