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

看起来您的代码差了一个

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

确保 b 不会在第一个读取字符处从 0 开始

于 2013-11-04T20:59:57.537 回答