ページ 1 / 1
ファイルの中の数値の計算
Posted: 2018年2月27日(火) 12:16
by ニヒル
実行ファイルと同じフォルダの中にあるファイルxc.abcにdouble型の内部形式(1数値当たり8バイト)で複数の数値が連続的に記録されている。
いくつ記録されているかは分からないが全ての値を読み取り、最小値と最大値の差の二乗求めて表示する、というプログラムを書きたいのですがどうやって書き始めたらいいのかも何を書いたらいいのかもわかりません。
Re: ファイルの中の数値の計算
Posted: 2018年2月27日(火) 21:13
by かずま
まず、テスト用に xc.abc を作るプログラムを書き、
それから double を1個ずつ読み込むプログラムを
書けばよいのではないでしょうか?
コード:
#include <stdio.h>
int main(void)
{
double a[4] = { 3.3, 1.1, 4.4, 2.2 };
FILE *fp = fopen("xc.abc", "wb");
if (!fp) return puts("fopen failed"), 1;
fwrite(a, sizeof(double), 4, fp);
fclose(fp);
return 0;
}
コード:
#include <stdio.h>
int main(void)
{
double a;
// 必要な変数を宣言する
FILE *fp = fopen("xc.abc", "rb");
if (!fp) return puts("fopen failed"), 1;
while (fread(&a, sizeof(double), 1, fp) == 1) {
printf("%g\n", a); // これは確認用
// 最小値と最大値の暫定値を求める
}
fclose(fp);
// 最終の最小値と最大値の差の二乗を求めて表示する
return 0;
}