ファイルの中の数値の計算

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ニヒル

ファイルの中の数値の計算

#1

投稿記事 by ニヒル » 7年前

実行ファイルと同じフォルダの中にあるファイルxc.abcにdouble型の内部形式(1数値当たり8バイト)で複数の数値が連続的に記録されている。
いくつ記録されているかは分からないが全ての値を読み取り、最小値と最大値の差の二乗求めて表示する、というプログラムを書きたいのですがどうやって書き始めたらいいのかも何を書いたらいいのかもわかりません。

かずま

Re: ファイルの中の数値の計算

#2

投稿記事 by かずま » 7年前

まず、テスト用に 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;
}

返信

“C言語何でも質問掲示板” へ戻る