我是编程的新手,我需要在第一阶段在我的程序中显示一个二进制文件。
在我的老师的帮助下,我能够做到这一点,但是当我在代码中工作到很晚时,我改变了一些我现在无法回复的东西:(
这是代码:
#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;
}
我认为,那是因为文件打开了,但我正在尝试将它重新组合在一起,需要帮助
答案 0 :(得分:0)
看起来您的代码已经关闭
在
while (!feof(f)) {
b++;
确保b在第一个读取字符
时不会从0开始