バイナリファイルを-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を読みたいのintまたは一度に4バイト。 (あなたの質問のタイトルは2バイトを示唆している、あなたの講師は4つを言った)。おそらく 'fread'を使うことができます。 (バイトスワッピングは理論的には問題ですが、この演習では無視しても差し支えありません) –
一度に2バイトまたは4バイトを読み取るにはどうすればよいですか? – fizsics
あなたの質問は、短い[]配列が必要だと言っています。あなたの先生はint []配列が必要だと言った。 –