0

私はプログラミングの初心者で、最初の段階でプログラムのバイナリ ファイルを表示する必要があります。

先生の助けを借りて、私はそれを行うことができましたが、コードの後半で作業していたときに、今では元に戻すことができないものを変更しました:(

これはコードです:

#include <stdlib.h>
#include <stdio.h>
#include <string.h>

int main()
{
    FILE *f;
    int a = 0, b = 0, c = 0, d = 0;
    float cinzentos = 0, mlinha = 0, ppixeis = 0;
    unsigned char matriz[28][28][500];

    f = fopen("dados1.bin", "rb");

    if (f != NULL) {
        while (!feof(f)) {
            b++;

            if (b == 28) {
                printf(" soma: %f ", mlinha);
                printf(" cizentos: %f ", mlinha / 28);
                printf("\n");
                b = 0;
                a++;
                mlinha = 0;
                printf("%d %d %d", a, b, c);
            }

            if (a == 28) {
                a = 0;
                c++;
                ppixeis = (ppixeis / 28 * 28) * 0.1;
                printf("media de pixeis: %f\n", ppixeis);
                printf("\n---------------\n");
            }

            matriz[a][b][c] = fgetc(f);

            if (matriz[a][b][c] != 0) {
                printf("1");
                mlinha = mlinha + matriz[a][b][c];
                ppixeis++;
                fputc(matriz[a][b][c], p);
            } else {
                printf("0");
            }
        }
    }

    fclose(f);

    return 0;
}

これは、ファイルを開いているためだと思いますが、これを元に戻そうとループしているときに助けが必要です

4

1 に答える 1

0

コードが 1 つずれているようです

while (!feof(f)) {
            b++;

最初の読み取り文字で b が 0 から始まらないことを保証します

于 2013-11-04T20:59:57.537 に答える