int i, j;
for (i = (*pgm).height - 1; i >= 0; i--)
for (j = 0; j < (*pgm).width; j++)
{
fscanf(file, "%c", &(*pgm).data[i][j]);
}
}
Это часть моей функции для чтения байта файла PGM by byte. В этом для, после что-то вроде 2000 байт, каждый байт, который он читает 0.Чтение файла pgm byte by byte получает поврежденные данные
Вместо того, чтобы читать изображения, как этот
Я понимаю, как этот
Как могу я решить это?
Edit: это определение платиноидов:
typedef struct PGM
{
int width;
int height;
int maxValue;
unsigned char data[500][500];
} PGM;
Почему вы пишете '(* pgm) .foo' вместо' pgm-> foo'? Как определяется и инициализируется 'pgm-> data? – rici
так учил мой учитель. Я поставил определение pgm в сообщение. Он инициализируется как PGM pgm; –
ваш учитель должен иметь достаточно веские причины для чтения файла изображения таким ужасным способом (по одному байту за раз и с помощью fscanf!). Скажите ему/ей, чтобы читать хотя бы одну линию изображения за раз (например, используя 'fread') и избегать разбора ввода. Это двоичный файл после всех – Pynchia