我需要编写一个程序来读取-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 []数组。 –