Я пытаюсь создать программу для чтения файла .ppm в C, который считывает необработанные данные и преобразует их в значения RGB.Мой код работает нормально до 5-го пикселя, затем он просто начинает повторять тот же вывод до EOF.
Вот мой маленький код:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
typedef struct {
unsigned char r,g,b;
} pixel;
int main(int argc,char* argv[]){
FILE* fileOBJ;
FILE* outFileOBJ;
pixel currentPix;
fileOBJ = fopen("pic.ppm","r");
outFileOBJ = fopen("out.txt","w+");
for (int i =0;i<(128*128);i++){
fread(¤tPix, 3, 1, fileOBJ);
fprintf(outFileOBJ,"%d.%d.%d ", currentPix.r, currentPix.g, currentPix.b);
}
return 0;
}
, и это на самом деле работает для первого5 пикселей с выводом 0.4.4 0.4.4 0.4.4 0.5.5 0.6.6
, но потом просто выплевывает несколько неправильных значений, а затем повторяет 0.33.90 0.33.90
навсегда.
Кто-нибудь знает, что я делаю неправильно?
Изображение P6 500x500, но я удалил заголовок для простоты. здесь - это файл.